TypeScript在函数语句上推断void而不是never



TypeScript为foo推断() => never,如果它是不返回的函数表达式的结果:

const foo = function () {
throw new Error();
}

但是void如果foo是函数语句:

function foo() {
throw new Error();
}

我不明白。能解释一下就好了。

在文档中找到解释。

"Never是函数表达式或箭头函数表达式的返回类型,它总是抛出异常或从不返回";

如果赋值引发错误,则永远不会分配const foo。

最新更新