为什么 TypeScript 编译器在函数返回未定义而函数的返回类型为 number 时不给出错误?



为什么函数返回nullundefined时TSC不给出错误,而函数的返回类型是number

//gives error
//Error : A function whose declared type is neither 'void' nor 'any' must return a value.ts(2355)
function add1(a: number, b: number): number {}

// no error
function add2(a: number, b: number): number {
return undefined;
}
// no error
function add3(a: number, b: number): number {
return null;
}

当类型检查编译器选项strictNullChecksoff时,不会出现错误。启用该选项将导致Typescript显示函数add2add3的错误。

您可以阅读更多关于它的信息:关闭strictnullchecks和打开

添加"严格的":在"true"下为true;compilerOptions";在tsconfig.json文件中。

正如上面提到的@S.M,它是由strict标志引起的,实际上它是由strictNullChecks标志引起的。

当我设置时

"strict": true,

"strictNullChecks": true,

TSC给出了我所期望的错误

相关内容

  • 没有找到相关文章

最新更新