vs code 的 typescript 类型检查依赖 tsconfig.json 存在且配置正确,而非插件;需置于工作区根目录,配合 "typescript.tsdk" 指定本地版本、重启 ts server、合理设置 include/exclude、baseurl/paths、strict 等关键选项。

VS Code 本身不依赖“TypeScript 插件”来提供核心类型检查——它内置了 TypeScript 语言服务,真正起作用的是 tsconfig.json 是否存在、是否配置正确,以及 VS Code 是否加载了项目本地的 TypeScript 版本。
tsconfig.json 缺失或位置不对,VS Code 就只做语法高亮
没有 tsconfig.json,VS Code 不会启动项目级类型检查,所有 import 跳转失效、类型提示消失、any 泛滥都源于此。不是插件没装,是编辑器根本不知道该按什么规则解析 .ts 文件。
- 必须放在工作区根目录(不是子文件夹),多根工作区每个文件夹都要有自己的
tsconfig.json - 新建项目别手写空文件,用
npx tsc --init生成基础配置,哪怕先只保留{}也能让 VS Code 启动 TS 服务 - 如果项目用了
pnpm或bun,node_modules/typescript路径可能异常,此时可在.vscode/settings.json中显式指定:"typescript.tsdk": "./node_modules/typescript/lib"
TS Server 没加载对版本,VS Code 和 tsc 行为就对不上
VS Code 右下角显示的 TypeScript 版本号,决定了它用哪套规则做类型提示。若显示 “Bundled” 或 “v5.0.4 (Global)”,而你本地 package.json 里装的是 typescript@5.4.5,那类型检查结果必然不一致——常见表现是 VS Code 不报错,但 npx tsc 一堆错误。
完整的Galileo AI平台 TypeScript/JS SDK 参考,用于评估、观察和保护 GenAI 应用。适用于构建 Node.js 或 TypeScript 项目。
- 按
Ctrl+Shift+P→ 输入TypeScript: Select TypeScript Version→ 选Use Workspace Version - 每次改完
tsconfig.json,必须手动执行TypeScript: Restart TS server,否则新配置不生效 - 如果频繁崩溃或跳转失败,优先删掉
node_modules重装,再确认typescript和@types/node版本兼容
关键 compilerOptions 字段漏配,路径别名和 JSON 导入就直接挂掉
baseUrl 和 paths 不配,@/utils 这类别名在 VS Code 里 Ctrl+Click 会跳到 node_modules 里或报“无法找到模块”;不设 resolveJsonModule,读 import data from './config.json' 就红标。
-
"baseUrl": "./"+"paths": { "@/*": ["src/*"] }:key 和 value 都必须带/*,且baseUrl是相对于tsconfig.json的路径 -
"strict": true必须开,否则noImplicitAny、strictNullChecks等默认关闭,类型提示形同虚设 -
"resolveJsonModule": true和"esModuleInterop": true建议常开,尤其用现代构建工具时 -
"skipLibCheck": false:设为true会跳过node_modules类型检查,第三方库补全和跳转会变弱
include/exclude 写错或没覆盖文件,类型检查就“看不见”你的代码
VS Code 的 TS 语言服务只检查被 tsconfig.json 显式包含的文件。即使文件在项目里,如果 include 漏了 "src/**/*",或者 exclude 误写了 "**/*.test.ts" 却没加引号,整个目录就可能被忽略。
-
"include"推荐显式写成["src/**/*", "types/**/*"],不要依赖默认行为 - 路径必须用正斜杠
/,且字符串要加引号,"src\**\*"或src/**/*(没引号)都会失效 - 检查是否有多个
tsconfig.json并存——VS Code 按文件路径向上查找最近的一个,父目录的配置可能意外覆盖当前项目 - 文件开头有
// @ts-nocheck会彻底禁用该文件检查,换成// @ts-ignore更可控
最常被忽略的一点:VS Code 的类型检查是“按需加载”的,它不会主动扫描整个项目,只响应打开的文件及其依赖链。所以即使 tsconfig.json 全对,某个 .ts 文件长期没打开,它的错误也不会出现在问题面板里——这不是 bug,是设计如此。










