VSCode本身不编译TypeScript,需依赖本地tsc或ts-node执行;核心是正确配置tsconfig.json(含strict、outDir、rootDir、sourceMap等)、选用项目本地TS版本并重启TS Server,否则将出现提示正常但运行报错、断点失效等问题。

VSCode 本身不运行 TypeScript,它只编辑、调用本地 tsc 或 ts-node;真正执行靠的是你装的 Node.js 和 TypeScript 编译器。没配好 tsconfig.json 或没选对 TS 版本,就会出现“写起来有提示,一运行就报错”“断点打不进 .ts 文件”这类问题。
确认 VSCode 正在用项目本地的 TypeScript 版本
VSCode 默认可能用内置或全局 TS 语言服务,和你 npx tsc 的行为不一致——这是 80% 的“编辑器不报错但终端编译失败”的根源。
- 右下角状态栏点击 TypeScript 版本号(例如
TS 5.4.5),选 Use Workspace Version - 确保项目已安装
typescript到devDependencies:npm install --save-dev typescript - 如果
node_modules/typescript存在但没被识别,可在 VSCode 设置里手动指定typescript.tsdk路径,比如./node_modules/typescript/lib
tsconfig.json 必须存在且关键字段不能省
没有 tsconfig.json,VSCode 只做语法高亮;字段配错,import 报红、路径别名跳转失效、sourceMap 断点不起作用全都会发生。
完整的Galileo AI平台 TypeScript/JS SDK 参考,用于评估、观察和保护 GenAI 应用。适用于构建 Node.js 或 TypeScript 项目。
-
"strict": true—— 不开这个,any泛滥、未初始化属性无提示,VSCode 的波浪线基本形同虚设 -
"outDir": "./dist"和"rootDir": "./src"必须显式设置,否则编译输出混乱,launch.json里的outFiles就匹配不上 -
"sourceMap": true是调试前提,但光有它不够:还要配合launch.json中的outFiles和正确的program路径 -
"include": ["src/**/*"]要加引号、用正斜杠,漏掉或写成src\**\*就会导致部分文件不参与类型检查
用 ts-node 运行单文件最省事,但要注意类型检查开关
ts-node 是开发阶段绕过编译直接跑 .ts 的快捷方式,但它默认不校验类型——改了代码没报错,不代表没问题。
- 安装:
npm install --save-dev ts-node @types/node - 基础运行:
npx ts-node src/index.ts—— 快,但类型错误静默忽略 - 带类型检查运行:
npx ts-node --no-cache --files src/index.ts,会实时报TS2322这类错误 - 注意:
ts-node会读tsconfig.json,但忽略"composite"、"incremental"等字段;若需全量类型检查,仍应以npx tsc --noEmit为准
launch.json 断点调试必须匹配编译输出路径
VSCode 调试器靠 .js.map 文件把运行时位置映射回 .ts 源码,outFiles 配错,断点就永远是“未绑定”。
-
"program": "${workspaceFolder}/src/index.ts"—— 指定入口源文件(不是.js) -
"preLaunchTask": "tsc: build - tsconfig.json"—— 确保每次调试前先编译,避免用旧.js -
"outFiles": ["${workspaceFolder}/dist/**/*.js"]—— 必须和tsconfig.json中的outDir完全一致,结尾双星号**不能少 - 如果用了
"rootDir": "./src"但outDir是"./dist",那生成的.js路径结构就是dist/index.js,outFiles就不能写成dist/src/**/*.js
最容易被忽略的是:改完 tsconfig.json 后,VSCode 不会自动重载 TS Server——必须手动按 Ctrl+Shift+P → 输入 TypeScript: Restart TS server。否则所有配置都是白搭。

















