类型检查
allowUnreachableCode
false
允许代码中存在无法执行的代码(例如 return 后的语句)。
allowUnusedLabels
false
允许未使用的 label 语句(例如 label: {})。
alwaysStrict
false
在编译输出的 JS 文件中自动添加 "use strict" 指令。
exactOptionalPropertyTypes
false
将可选属性视为 { foo?: T } 与 { foo: Tundefined } 不等价,更严格。
noFallthroughCasesInSwitch
false
阻止 switch 中 case 无 break 或 return 导致的意外贯穿。
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
更严格检查 bind、call、apply 的参数类型匹配。
strictBuiltinIteratorReturn
false
要求标准迭代器返回 { value: T, done: boolean } 的精确类型。
strictFunctionTypes
true(启用 strict 时)
更严格的函数参数双向兼容性检查。
strictNullChecks
false
严格处理 null 和 undefined,不再隐式可赋值。
strictPropertyInitialization
false
要求类的每个属性都在构造函数中初始化,除非被标注为 undefined 或用 ! 断言。
这有帮助吗?