You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何TypeScript中隐式返回undefined未触发类型检查错误?

为何TypeScript不对隐式返回undefined的函数触发类型检查错误?

示例代码如下:

function foo(x: number): number
{
    if (x != 5) { return x+2; }
    
    // undefined returned here
}

var arg = process.argv[2];
console.log(foo(Number(arg)))

原因说明:

  • TypeScript默认没有启用noImplicitReturns编译选项,这个选项的作用就是检查函数的所有代码分支是否都有明确返回值。未开启该选项时,隐式返回undefined的分支不会被检测出来。
  • 在非严格模式下,undefined被视为所有类型的子类型,所以即便函数声明返回number,返回undefined也不会触发类型不匹配错误。如果开启strictNullChecks选项,这种情况就会报错,因为此时undefined不再是number的子类型。

内容的提问来源于stack exchange,提问作者OrenIshShalom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:55:27