类型检查

选项名
默认值
说明

allowUnreachableCode

false

允许代码中存在无法执行的代码(例如 return 后的语句)。

allowUnusedLabels

false

允许未使用的 label 语句(例如 label: {})。

alwaysStrict

false

在编译输出的 JS 文件中自动添加 "use strict" 指令。

exactOptionalPropertyTypes

false

将可选属性视为 { foo?: T }{ foo: Tundefined } 不等价,更严格。

noFallthroughCasesInSwitch

false

阻止 switchcasebreakreturn 导致的意外贯穿。

noImplicitAny

false

不允许推断为 any 的隐式类型,必须显式声明。

noImplicitOverride

false

要求使用 override 关键字显式标注重写父类成员。

noImplicitReturns

false

所有代码路径必须显式 return 值(如果函数声明有返回类型)。

noImplicitThis

false

不允许 this 的隐式类型为 any,必须有明确上下文类型。

noPropertyAccessFromIndexSignature

false

禁止通过属性访问(点语法)访问仅定义了索引签名的属性。

noUncheckedIndexedAccess

false

启用对索引访问添加 undefined 类型,比如 obj[key] 推断为 undefined

noUnusedLocals

false

报告未使用的局部变量。

noUnusedParameters

false

报告未使用的函数参数。

strict

false

一键开启所有严格类型检查选项(推荐:开启)。

strictBindCallApply

false

更严格检查 bindcallapply 的参数类型匹配。

strictBuiltinIteratorReturn

false

要求标准迭代器返回 { value: T, done: boolean } 的精确类型。

strictFunctionTypes

true(启用 strict 时)

更严格的函数参数双向兼容性检查。

strictNullChecks

false

严格处理 nullundefined,不再隐式可赋值。

strictPropertyInitialization

false

要求类的每个属性都在构造函数中初始化,除非被标注为 undefined 或用 ! 断言。

这有帮助吗?