tsconfig.json 的 strict 设为 true 不生效,是因为 vscode 未加载项目根目录的配置:需打开正确根目录、选 workspace 版本、排除语法错误;strict 启用后报错属正常,反映类型漏洞,应修复而非关闭;不可单文件禁用 strict,可用 @ts-ignore 或分层配置;node_modules 报 strict 错误通常因错误包含它,应从 include/files 中移除并确保 exclude。

tsconfig.json 里 strict 设为 true 不生效?
VSCode 默认不会强制读取项目根目录的 tsconfig.json,尤其当你打开的是子文件夹、多根工作区,或文件没被 TypeScript 语言服务“纳入编译范围”时,strict 就像没写一样。不是配置错了,是 TypeScript 服务压根没加载你的配置。
实操建议:
- 确保 VSCode 打开的是包含
tsconfig.json的**项目根目录**(不是某个 src 子文件夹) - 右下角状态栏点击 TypeScript 版本号,确认显示的是“Workspace version”,而不是 “Bundled” 或 “Node module” —— 如果是后者,说明没识别到本地配置
- 按 Ctrl+Shift+P(macOS 是 Cmd+Shift+P),输入并运行
TypeScript: Select TypeScript Version,选 “Use Workspace Version” - 检查
tsconfig.json是否有语法错误(比如逗号遗漏、注释未删),VSCode 的 TS 服务会静默跳过非法配置
strict 开启后大量报错,但代码能跑通?
这是正常现象。strict 是一揽子开关,等价于同时启用 noImplicitAny、strictNullChecks、strictFunctionTypes 等十几个检查项,它不阻止运行,只让类型系统更“较真”。你看到的红波浪线,是编辑器在提醒:这里存在潜在类型漏洞,比如 undefined 没被处理、函数参数类型可能不安全。
常见错误现象:
-
Object is possibly 'undefined'——strictNullChecks生效,访问属性前需显式判空 -
Parameter 'x' implicitly has an 'any' type——noImplicitAny生效,函数参数必须标注类型 -
Type '{}' is not assignable to type 'X'——strictObjectAssignability(含在 strict 中)拒绝宽泛赋值
别急着关 strict,先逐个加类型标注或使用非空断言(!)、可选链(?.)等修复。否则关了只是掩盖问题,不是解决问题。
想局部关闭 strict 检查,比如某几个文件?
TypeScript 不支持对单个文件关闭 strict,但可以绕过:用 // @ts-ignore 抑制下一行,或用 // @ts-nocheck 放在文件顶部忽略整个文件。不过这属于“打补丁”,不是配置方案。
更合理的做法是分层配置:
- 主
tsconfig.json保持"strict": true - 新建
tsconfig.node.json或tsconfig.test.json,继承主配置但覆盖特定项,例如:{ "extends": "./tsconfig.json", "compilerOptions": { "strictNullChecks": false } } - 在对应文件顶部加
// @ts-config ./tsconfig.test.json(需 VSCode 1.86+ 且启用实验性支持)
注意:// @ts-config 不是所有版本都支持,且仅影响类型检查,不影响实际编译行为。
node_modules 里的库报 strict 错误,怎么处理?
这是最常被忽略的一点:strict 对 node_modules 默认无效 —— TypeScript 语言服务默认跳过它们的类型检查。如果你看到 node_modules 里的代码报 strict 相关错误,基本只有一种可能:你手动把 node_modules 加进了 include 或 files 数组。
立刻检查 tsconfig.json:
- 删除
"include": ["node_modules/**"]这类配置 - 确保
"exclude"包含"node_modules"(虽然默认已排除,但显式写上更稳妥) - 如果用了
"files",确认里面没有引用node_modules下的路径
第三方库的类型问题,应该靠升级库、安装 @types/xxx 或提 issue 解决,而不是让自己的项目去迁就它的松散类型。











