用途:帮助开发者在搭建 TypeScript 项目、排查类型检查差异或决定严格程度时,理解 tsconfig.json 中编译选项的作用。资料强调同一份代码在不同配置下可能通过或报错,因此必须清楚自己在用哪些选项。
主要能力与要点:核心规则是始终使用 tsconfig.json 并为新项目开启 strict 模式。noImplicitAny 控制是否允许隐式 any:关闭时函数参数可被隐式推断为 any,开启后必须显式标注类型。strictNullChecks 控制 null/undefined 是否允许出现在所有类型中,开启后需显式声明联合类型(如 number | null)并处理可能为 null 的值,可用条件判断或非空断言(需谨慎)。strict 会一次性启用 noImplicitAny、strictNullChecks、strictFunctionTypes、strictBindCallApply、strictPropertyInitialization、noImplicitThis、alwaysStrict 等。此外可考虑比 strict 更严的 noUncheckedIndexedAccess,让数组/对象索引访问结果视为可能为 undefined。
使用方式:推荐配置示例为 strict 为 true,target 为 ES2020,module 为 ESNext,moduleResolution 为 bundler;可用 tsc --init 生成。对既有 JavaScript 项目,建议渐进迁移:从最小设置开始,先启用 noImplicitAny 并修复所有隐式 any 错误,再启用 strictNullChecks,最终达到完整 strict。
适用场景与限制:适合新项目配置、调试他人看不到的类型错误、决定严格级别。资料提醒的风险信号包括:项目中没有 tsconfig.json、用命令行标志代替配置文件、在无迁移计划下设置 strict 为 false、团队成员使用不同设置。修复严格模式报错应逐文件增量进行。文档未提供价格、平台或版本等其它信息。