vscode本身不运行typescript,仅编辑、提示并调用tsc或ts-node;真正执行需node(配合ts-node)或先tsc编译再node运行.js。

VSCode 本身不运行 TypeScript,它只编辑、提示、调用外部工具;真正能执行 .ts 文件的,只有 node(配合 ts-node)或先编译再用 node 运行 .js。别指望右键“运行”或 F5 就能直接跑通,那背后必须配对好工具链。
tsc 编译后用 node 运行:最稳但多一步
这是生产向做法,类型检查 + 输出 JS + 独立运行,三者分离清晰,适合 Node.js 后端或 CLI 工具。
-
tsc必须已安装:推荐项目级安装npm install --save-dev typescript,避免全局版本污染 -
tsconfig.json中"noEmit"不能为true,否则tsc不生成任何文件 -
"outDir"和"rootDir"路径不能重叠,否则tsc -w可能误把dist/里的.js当源码二次编译 - 编译命令建议用
npx tsc(确保用项目版本),输出后手动运行node ./dist/index.js - 若想保存即编译,用
npx tsc -w,但注意它不会自动重启进程——改了代码要手动 Ctrl+C 再重来
ts-node 直接运行 .ts:开发阶段首选,但有坑
ts-node 是开发期“跳过编译”的快捷方式,但它不是 tsc 替代品,行为差异明显。
完整的Galileo AI平台 TypeScript/JS SDK 参考,用于评估、观察和保护 GenAI 应用。适用于构建 Node.js 或 TypeScript 项目。
- 安装:必须同时装
ts-node和@types/node,否则process、__dirname等会报错 - 默认不校验类型错误:
npx ts-node src/index.ts只做转译,any泛滥也照跑;加--no-cache --files才强制全量类型检查 - 不支持
tsconfig.json全部字段:比如"composite"、"incremental"、"extends"都被忽略,别指望它复现tsc的构建逻辑 - ESM 项目要小心:
"type": "module"下,ts-node默认不兼容,得加--esm参数,且 Node.js ≥18.12
launch.json 断点调试:sourceMap 不等于能断点
VSCode 调试 .ts 文件,靠的是 .js.map 把运行时位置映射回源码。但光开 "sourceMap": true 不够。
-
tsconfig.json必须设"sourceMap": true和"outDir",否则生成的.map文件路径不对,VSCode 找不到 -
launch.json中的"program"必须指向编译后的.js(如"./dist/index.js"),不是.ts - 如果用了
ts-node调试,launch.json要换用"runtimeExecutable": "npx"+"runtimeArgs": ["ts-node", "--project", "./tsconfig.json"],否则断点无效 - 每次改完
tsconfig.json,务必按Ctrl+Shift+P→TypeScript: Restart TS server,否则旧缓存会让断点跳偏
常见错误:tsc 能跑通,但 VSCode 里全是红波浪线
这不是环境没搭好,而是 VSCode 的 TypeScript Server 没读对配置——它和终端里 tsc 是两套独立系统。
- 右下角状态栏点 TypeScript 版本号,必须选
Use Workspace Version(指向node_modules/typescript),不能是Bundled或Global -
tsconfig.json改完后,不重启 TS Server,VSCode 仍用旧缓存解析,Ctrl+Click 跳转可能失效 -
"include"字段漏写或路径错:比如写成src/**/**或src\**\*(反斜杠 Windows 风格),VSCode 就识别不了 - 多根工作区下,每个文件夹必须有自己独立的
tsconfig.json,共用一个会导致路径解析混乱
真正卡住人的,从来不是“怎么装”,而是“哪个环节用了哪个版本的 TypeScript”——终端里的 tsc、VSCode 底部显示的 TS 版本、launch.json 调试时加载的 TS Server,三者不一致,问题就藏在缝隙里。










