VSCode本身不运行TypeScript,必须依赖Node.js和ts-node或tsc编译后执行;需显式配置tsconfig.json(含outDir、sourceMap、strict等)、package.json脚本及launch.json调试路径,否则断点失效、类型检查静默、编译无输出。

VSCode 本身不运行 TypeScript,必须靠 Node.js + ts-node 或先 tsc 编译再 node 执行——所谓“脚手架”只是帮你省掉手动配 tsconfig.json 和 package.json 的重复劳动,但底层逻辑没变。
用 create-react-app --typescript 或 npm init -y && tsc --init 生成的不是“可直接运行的 TS 环境”
这类命令只建骨架:tsconfig.json 默认关 "outDir"、"sourceMap"、"strict";package.json 里没写 start 脚本。不改这些,tsc 不输出 JS,ts-node 可能静默跳过类型错误,VSCode 断点也打不进 .ts 文件。
-
tsconfig.json至少要显式加:"outDir": "./dist"、"rootDir": "./src"、"sourceMap": true、"strict": true -
package.json的scripts里得补上:"start": "tsc && node ./dist/index.js"(编译后执行)或"dev": "ts-node src/index.ts"(开发直跑) - 如果脚手架生成的
src下没文件,自己建一个index.ts并写console.log("ok"),否则tsc会报 “no input files”
ts-node 直跑 .ts 文件时,类型检查默认关闭
你敲 npx ts-node src/index.ts 能出结果,不代表代码没毛病——ts-node 默认只做转译,any 泛滥、属性未初始化、函数返回值错配全不报错。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 强制类型检查:加
--no-cache --files参数,即npx ts-node --no-cache --files src/index.ts - ESM 项目(
"type": "module"在package.json里)必须加--esm,且 Node.js ≥18.12,否则报ERR_REQUIRE_ESM -
ts-node忽略tsconfig.json里的"composite"、"incremental"、"extends"字段,别指望它复现tsc的构建行为
VSCode 断点调试失败,90% 是 launch.json 和 tsconfig.json 没对齐
VSCode 调试靠 .js.map 映射源码位置,但 sourceMap 开了 ≠ 断点有效——路径、输出目录、TS 版本三者必须咬死。
-
tsconfig.json必须有"outDir": "./dist"和"sourceMap": true,否则生成的.map文件路径错乱 -
launch.json中"program"必须指向编译后的.js(如"./dist/index.js"),不能写"./src/index.ts" - 若用
ts-node调试,launch.json得换配置:"runtimeExecutable": "npx"+"runtimeArgs": ["ts-node", "--project", "./tsconfig.json"] - 改完
tsconfig.json后,务必按Ctrl+Shift+P→TypeScript: Restart TS server,否则 VSCode 缓存旧配置,断点跳偏
真正麻烦的从来不是“怎么跑起来”,而是“为什么改了代码没反应”“为什么断点打不进”“为什么编辑器不报错但 tsc 报一堆 TS2322”。这些问题根子都在 tsconfig.json 字段是否生效、VSCode 是否用了项目本地的 TypeScript、以及 launch.json 是否严格匹配编译输出路径——脚手架生成的配置,几乎都不满足这三点。

















