为什么函数返回null
或undefined
时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;
}
当类型检查编译器选项strictNullChecks
为off
时,不会出现错误。启用该选项将导致Typescript显示函数add2
和add3
的错误。
您可以阅读更多关于它的信息:关闭strictnullchecks和打开
添加"严格的":在"true"下为true;compilerOptions";在tsconfig.json文件中。
正如上面提到的@S.M,它是由strict
标志引起的,实际上它是由strictNullChecks
标志引起的。
当我设置时
"strict": true,
或
"strictNullChecks": true,
TSC给出了我所期望的错误