我正在创建一个应用程序,但有一个时刻,他给了我以下错误:“并非所有代码路径都返回值”。错误出现在函数名称(addValues)中,说明函数必须返回“Obj[]|未定义”。
按照下面的代码块:
public addValues() {
const inputValue = document.getElementById('valor') as HTMLFormElement;
const inputNameValue =
document.getElementById('nome-valor') as HTMLFormElement;
const enterChecked = document.getElementById('entrada') as HTMLFormElement;
const leftChecked = document.getElementById('saida') as HTMLFormElement;
if (inputValue?.length && inputNameValue?.length && (enterChecked.checked || leftChecked.checked)) {
const list: Obj = {
id: Math.random(),
valor: +inputValue,
nomeValor: String(inputNameValue),
checked: enterChecked.checked ? enterChecked : leftChecked
}
if (this.valores == undefined) {
return undefined
}
return this.valores = [list]
}
2条答案
按热度按时间gzjq41n41#
使用第一个
if
语句,您创建了一个具有两个路径的分支。如果表达式为true,则运行其中有两个return语句的代码。如果表达式为false,则到达函数的末尾而不返回任何值。这就是“并非所有代码路径都返回值”的含义。您应该指定函数的返回类型,并在每个分支中返回该类型的值。
xuo3flqw2#
这个问题是因为所有的return语句都在if块中。你需要在if块后面有一个return语句,否则,在某些情况下,你的函数什么都不返回,这违反了它的返回值定义,要么是一个对象数组,要么是一个未定义的对象,正如你所说的。