必须锁定工作区typescript版本并重启ts server,否则因内置与本地版本不一致会导致tsserver反复重启、类型推导错乱、补全卡顿;需在.vscode/settings.json中配置typescript.tsdk和enablepromptuseworkspacetsdk,并删除tsconfig.json中的files字段,改用include/exclude精确控制文件范围。

确认当前 TypeScript Server 实际使用版本
状态栏右下角点击 TypeScript 版本号,看到的是 Bundled version: 5.2.2 还是 Workspace version: 5.4.5?前者说明你正在用 VSCode 自带旧版服务,哪怕 node_modules/typescript 已安装 5.4.5 也无效。命令面板运行 TypeScript: Select TypeScript Version 后若没真正选中 “Use Workspace Version”,只是“看起来切换了”——这一步几乎总被跳过。
必须在 .vscode/settings.json 中硬编码 typescript.tsdk
仅靠命令面板切换不可靠,尤其在多根工作区或 monorepo 中容易回退。必须写死路径:
{
"typescript.tsdk": "./node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true
}
-
./node_modules/typescript/lib必须存在(即已执行过npm install --save-dev typescript) - 若用
pnpm,路径仍是./node_modules/typescript/lib,硬链接不影响有效性 - 删掉
tsconfig.json中的files字段——它会绕过所有include/exclude规则,强行加载node_modules/react/index.d.ts这类不该进类型检查的文件
tsconfig.json 关键配置项不能缺
以下不是“可选优化”,而是大型 TS 项目不卡顿的底线:
-
"skipLibCheck": true—— 关闭对node_modules中类型声明的检查,提速最显著 -
"composite": true+"declarationMap": false—— 启用增量编译,避免每次重算整个项目 -
"include"显式列出源码路径(如["src/**/*", "types/**/*.d.ts"]),严禁留空或写["**/*"] - 检查
"typeRoots"是否指向巨量目录(如["../shared-types"]),应精简为["node_modules/@types"]
editor.quickSuggestionsDelay 是延迟主因,不是 suggestDelay
很多人调了 editor.suggestDelay 却没效果,因为真正控制「停下输入到弹出提示框」的是 editor.quickSuggestionsDelay,默认值是 1000 毫秒。
- 设为
0表示立即触发(注意:仍需语言服务响应时间) - 设为
200~300更平衡,既避免误触又不显迟滞 - 支持语言专属配置,例如只对 JS 加快:
"javascript.editor.quickSuggestionsDelay": 200 - 该设置会被工作区
.vscode/settings.json或语言专属设置覆盖,优先级高于全局设置
改完配置后不手动执行 Restart TS Server,等于白改。Ctrl+Shift+P 输入并运行它,才是唯一生效验证点。











