我能做什么来解决这个错误在typescript?“不是所有的代码路径返回一个值”

a2mppw5e  于 2023-03-31  发布在  TypeScript
关注(0)|答案(2)|浏览(312)

我正在创建一个应用程序,但有一个时刻,他给了我以下错误:“并非所有代码路径都返回值”。错误出现在函数名称(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]
        }
gzjq41n4

gzjq41n41#

使用第一个if语句,您创建了一个具有两个路径的分支。如果表达式为true,则运行其中有两个return语句的代码。如果表达式为false,则到达函数的末尾而不返回任何值。这就是“并非所有代码路径都返回值”的含义。
您应该指定函数的返回类型,并在每个分支中返回该类型的值。

xuo3flqw

xuo3flqw2#

这个问题是因为所有的return语句都在if块中。你需要在if块后面有一个return语句,否则,在某些情况下,你的函数什么都不返回,这违反了它的返回值定义,要么是一个对象数组,要么是一个未定义的对象,正如你所说的。

相关问题