根本原因是tsserver启动或响应变慢,常见诱因包括项目过大、node_modules被纳入检查、tsconfig配置不当、插件干扰或ts版本不匹配;需精简include/exclude、禁用冗余插件、强制使用工作区ts版本。

为什么 TypeScript 类型检查在 VSCode 里变慢了
根本原因不是 VSCode 本身,而是 tsserver(TypeScript 语言服务)启动或响应变慢。常见诱因包括:项目过大、node_modules 被意外纳入检查范围、tsconfig.json 配置不当、插件干扰,或本地 TypeScript 版本与工作区不匹配。
检查并精简 tsconfig.json 的 include 和 exclude
默认配置若没显式限制,tsserver 可能扫描整个工作区目录(含 node_modules、dist、.git),极大拖慢响应。必须明确划定边界:
-
include只写实际源码路径,例如["src/**/*", "types/**/*.d.ts"],避免用["**/*"] -
exclude至少包含["node_modules", "dist", "build", ".vscode"];如果用了 Jest 或 Cypress,也加上"__tests__"和"cypress" - 确认没有重复的
files字段——它会绕过include/exclude,强制加载所有列出文件,极易引发卡顿
禁用不必要的 TypeScript 插件和 VSCode 扩展
某些扩展(如 ESLint、Prettier、Import Sorter)会在保存/输入时触发额外 TS 检查,叠加 tsserver 负载。更隐蔽的是 TypeScript 官方插件自身可能被误启用:
- 打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),运行Preferences: Configure Language Specific Settings...→ 选TypeScript,检查是否有冗余配置项如"typescript.preferences.includePackageJsonAutoImports"设为"auto"(建议改为"off") - 临时禁用非核心扩展(尤其是带 “TS” “Type” “Language Features” 字样的),用
Developer: Toggle Developer Tools观察控制台是否报tsserver连接超时或大量updateOpen请求 - 确认没有启用
typescript.preferences.suggestCompleteMethodCalls—— 它在大型对象链上调用时显著拖慢补全
强制使用工作区本地 TypeScript 版本而非 VSCode 内置版本
VSCode 自带一个较旧的 TS 版本(如 5.2),而项目依赖可能是 5.4+;版本错位会导致 tsserver 反复重启、类型推导失败甚至内存泄漏。必须对齐:
- 在项目根目录运行
npm install typescript --save-dev(确保node_modules/typescript存在) - 打开命令面板,运行
TypeScript: Select TypeScript Version...→ 选Use Workspace Version - 检查状态栏右下角:点击 TS 版本号,确认显示的是
Workspace version: x.x.x,不是Bundled version - 如果仍慢,尝试在
tsconfig.json中加"incremental": true和"composite": true(仅适用于多包项目,单包慎用)
真正卡住的时候,往往不是某个开关没开,而是多个小配置叠加——比如 include 没限制 + 用了 files + 状态栏显示的是 Bundled 版本 + 同时开着 3 个 TS 相关插件。逐项验证比猜更快。











