TypeScript项目VSCode IntelliSense卡顿的根本原因是TSServer在大型项目中反复全量检查和AST构建,需配置skipLibCheck、composite、include等并重启TSServer。

为什么 TypeScript 项目在 VSCode 里 IntelliSense 卡顿?
根本原因不是 VSCode 本身慢,而是 TypeScript 语言服务(TSServer)在大型项目中反复做全量类型检查和 AST 构建。尤其当 node_modules 被纳入检查范围、存在大量 declare module 或未配置 skipLibCheck 时,TSServer 内存占用飙升,响应延迟明显——你敲完 . 后等 2–3 秒才弹出提示,就是典型症状。
必须加的 tsconfig.json 配置项
以下几项不是“可选优化”,而是大型 TS 项目的必备底线配置,缺一不可:
-
"skipLibCheck": true—— 关闭对node_modules中类型声明的检查,提速最显著; -
"composite": true+"declarationMap": false—— 启用增量编译,避免每次重算整个项目; -
"include"显式列出源码路径(如["src/**/*"]),严禁留空或写["./**/*"],否则 TSServer 会扫描dist、build等无关目录; - 确认没有
"typeRoots"指向巨量@types目录,如有,精简为仅需的包(如["node_modules/@types"])。
VSCode 工作区级设置要关掉这些
用户级设置会影响所有项目,但工作区级(.vscode/settings.json)才能精准控制当前项目行为:
-
"typescript.preferences.includePackageJsonAutoImports": "auto"改为"off"—— 大项目下自动补全package.json依赖名会触发额外解析; -
"typescript.suggest.autoImports": false或设为"inline"(而非默认"true")—— 全量自动导入建议在 10k+ 文件项目里极易卡死; -
"editor.quickSuggestions"对"other"和"comments"设为false—— 减少非关键场景的提示触发; - 确保
"typescript.tsserver.log": "off"(开发调试时除外),日志写入本身就会拖慢 TSServer。
别忽略 jsconfig.json 对纯 JS 项目的干扰
如果你在 JS 项目里也遇到补全延迟,大概率是 VSCode 自动启用了 JS 语言服务并尝试类型推导。解决方式很直接:
- 根目录存在
jsconfig.json时,必须包含"checkJs": false; - 删掉
jsconfig.json也不行——VSCode 会 fallback 到更慢的默认推导逻辑; - 若项目混用 TS/JS,优先统一用
tsconfig.json,并在compilerOptions.allowJs设为true,让 TSServer 统一接管。
真正卡住的地方往往不是配置本身,而是改完 tsconfig.json 后没重启 TSServer:按 Ctrl+Shift+P(macOS Cmd+Shift+P),输入 Restart TS Server 手动触发,别等它自己恢复。


















