如何在VS Code中调试Node.js环境下包含类的TypeScript文件
报错根因
该错误是Node.js直接执行了包含TS独有语法的源文件导致的:Node本身仅支持JS语法,无法识别TypeScript的类型注解(你代码中value: string这类类型标注属于TS专属语法)。你之前可以正常调试的无类TS文件本质是没有类型标注的纯JS语法,所以可以被Node直接解析执行。
解决步骤
第一步:安装必要依赖
全局安装typescript和ts-node,执行命令:npm install -g typescript ts-node
如果仅当前项目使用,执行:npm install --save-dev typescript ts-node第二步:生成并配置tsconfig.json
在项目根目录执行tsc --init生成配置文件,确保开启以下核心配置:
{ "compilerOptions": { "target": "ES2020", "module": "CommonJS", "outDir": "./dist", "rootDir": "./", "sourceMap": true } }
其中sourceMap必须开启,用于调试时关联TS源码和编译后的JS代码。
- 第三步:配置VS Code调试规则
打开VS Code运行和调试面板,创建.vscode/launch.json文件,选择Node.js环境,替换为以下两种配置二选一即可:
- 先编译再调试的配置(适合需要留存编译后JS文件的场景)
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "编译后调试TS", "program": "${file}", "preLaunchTask": "tsc: 构建 - tsconfig.json", "outFiles": ["${workspaceFolder}/dist/**/*.js"], "skipFiles": ["<node_internals>/**"] } ] }
- ts-node直接调试(无需手动编译,更便捷)
{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "ts-node直接调试TS", "runtimeExecutable": "ts-node", "program": "${file}", "cwd": "${workspaceFolder}", "console": "integratedTerminal" } ] }
- 第四步:验证调试
打开sample.ts文件打上端点,按F5启动调试即可正常运行,不会再抛出语法错误。
内容的提问来源于stack exchange,提问作者Uddip Acharjee Shuvo
相关产品推荐
相关产品推荐

