VS Code 不报 TypeScript 类型错误,大概率是语言服务未连上正确 tsc 或配置被静默绕过:tsconfig.json 未生效(文件未被 include/exclude 冲突/多配置优先级错)、TypeScript 版本非 Workspace 导致语法与检查不一致、存在 @ts-nocheck 或 skipLibCheck 异常、TS Server 未重启导致缓存未更新。
VS Code 不报 TypeScript 类型错误,大概率不是代码问题,而是语言服务没连上正确的
或配置被静默绕过。
tsconfig.json 没生效?先看文件是否被包含
即使写了
,VS Code 也不会检查未纳入
或
的文件。常见漏配:
只写了
,但你的测试文件在
下,就得加
用了
却误删了
,导致类型定义冲突(尤其装了多个
包时)
根目录有多个
(比如父文件夹也有),VS Code 会优先用路径上最近的那个——可能根本不是你改的那个
报错消失或错位?检查 TypeScript 版本是否一致
VS Code 状态栏右下角显示的版本号,必须是
,而不是
或
。否则:
新语法(如
声明、
断言增强)不识别
等开关行为不一致:旧版可能跳过某些检查
编辑器提示的错误行号和
实际输出不一致
务必执行:
→ 选
;如果没出现该选项,说明
不存在,先运行
。
明明配置了 strict,却没报错?警惕这些静默关闭项
以下任意一项都可能导致类型检查“失效”:
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
文件顶部有
—— 它会彻底禁用整个文件的检查,比
影响范围大得多
中
是正常设置,但若同时设了
且
包损坏,语言服务可能卡住、不报任何错
项目用了 Vite 或 Vue,但没配
或
,导致
等全局变量被识别为
,进而让后续推导全变宽松
重启 TS Server 是最快验证手段
很多“配置改了但没反应”的情况,本质是语言服务缓存了旧状态。不要反复重开窗口,直接:
按
(Mac 为
)→ 输入
→ 回车。几秒后所有波浪线会重新计算。这步比清缓存、删
快得多,也更安全。
真正容易被忽略的是:VS Code 的类型检查和构建工具(如
、
)各自读各自的
。你改了项目根目录的配置,但
可能正用
,而编辑器只认当前打开文件所属的 tsconfig —— 路径层级和继承关系必须对得上。
tsc"strict": trueincludefiles"include"["src/**/*"]test/"test/**/*""exclude""node_modules"@typestsconfig.jsonTS X.X.X (Workspace)BundledVS Code's VersionusingconstnoImplicitAnytsc --noEmitTypeScript: Select TypeScript VersionUse Workspace Versionnode_modules/typescriptnpm install --save-dev typescript// @ts-nocheck// @ts-ignoretsconfig.json"noEmit": true"skipLibCheck": false@types"types": ["vite/client"]vite-env.d.tsimport.meta.envanyCtrl+Shift+PCmd+Shift+PTypeScript: Restart TS serverCachedDatatscvitest typechecktsconfig.jsonvitesttsconfig.test.json