答案:在VSCode中运行TypeScript需先将TS转译为JS,因Node.js无法直接执行TS。常用方案包括:使用ts-node直接运行,适合开发测试;通过tsc编译后再用node运行,适合生产环境;结合launch.json配置调试,提升开发效率。

在VSCode里运行TypeScript脚本,核心思路其实就一个:TypeScript代码本身是不能直接被Node.js环境执行的,它需要先被“翻译”成JavaScript,然后Node.js才能理解并运行。这个“翻译”过程就是我们常说的编译(或者更准确地说是转译,transpilation)。VSCode之所以能让我们感觉“直接”运行TS,是因为它集成了各种工具和配置,把这个编译-运行的流程给自动化了。
要在VSCode中运行TypeScript代码,通常有几种主流的做法,各有侧重,我个人在不同场景下会选择不同的方式。
方案一:使用ts-node
这是我个人在日常开发中,尤其是在跑一些小脚本、测试某个函数或者进行快速迭代时最喜欢的方式。它省去了显式编译生成
.js
typescript
ts-node
npm install -g typescript ts-node # 全局安装 # 或者在项目根目录安装 # npm install --save-dev typescript ts-node
tsconfig.json
ts-node
tsconfig.json
// tsconfig.json
{
"compilerOptions": {
"target": "es2018", // 根据你的Node.js版本和需求调整
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}ts-node your-script.ts
比如,如果你有一个
src/index.ts
console.log("Hello, TypeScript!");ts-node src/index.ts
方案二:传统编译后运行(tsc
node
这种方式更符合TypeScript的“本意”,也是生产环境部署时的标准做法。它让你对编译过程有更清晰的认知和控制。
typescript
npm install -g typescript # 或者 npm install --save-dev typescript
tsconfig.json
tsconfig.json
outDir
// tsconfig.json
{
"compilerOptions": {
"target": "es2018",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"outDir": "./dist", // 将编译后的JS文件输出到dist目录
"rootDir": "./src" // 你的TypeScript源文件都在src目录下
},
"include": ["src/**/*"] // 告诉tsc需要编译哪些文件
}tsc # 或者如果你只想编译某个文件: # tsc src/your-script.ts
执行
tsc
dist
outDir
node dist/your-script.js
比如,
node dist/index.js
方案三:利用VSCode的调试器进行调试
这是开发大型项目时不可或缺的利器。VSCode的调试功能非常强大,可以让你在TypeScript源码级别设置断点、单步执行、检查变量等。
配置launch.json
launch.json
ts-node
tsc
node
使用ts-node
launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "使用ts-node调试当前文件",
"runtimeArgs": ["-r", "ts-node/register"], // 关键:注册ts-node
"args": ["${file}"], // 运行当前打开的TS文件
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
]
}这个配置会使用
ts-node
编译后调试(tsc
node
launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "编译后调试",
"preLaunchTask": "tsc: build - tsconfig.json", // 关键:先执行编译任务
"program": "${workspaceFolder}/dist/index.js", // 运行编译后的JS文件
"outFiles": ["${workspaceFolder}/dist/**/*.js"], // 告诉调试器源文件映射在哪里
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"sourceMaps": true // 启用源映射
}
]
}这个配置假设你有一个名为
index.ts
dist/index.js
preLaunchTask
outFiles
sourceMaps
这个问题是很多初学者都会遇到的一个核心疑惑,也是理解TypeScript工作原理的关键。简单来说,Node.js是一个JavaScript运行时环境,它只“认识”JavaScript代码。当你编写TypeScript代码时,你是在使用JavaScript的一个超集,这意味着你引入了Node.js或浏览器原生JavaScript引擎不理解的语法特性,比如类型注解(
string
number
interface
enum
@decorator
想象一下,Node.js就像一个只懂普通话的听众,而TypeScript就像一种方言,虽然大部分内容和普通话相似,但其中夹杂了一些只有方言使用者才懂的词汇和表达方式。为了让普通话听众理解,你需要一个翻译(也就是TypeScript编译器
tsc
所以,无论是
ts-node
tsc
ts-node
tsc
高效的TypeScript开发体验,很大程度上取决于VSCode的合理配置和一些常用工具的配合。这不仅仅是能跑起来代码那么简单,更是让整个开发流程顺畅、愉快。
首先,
tsconfig.json
"target"
"es2018"
"esnext"
"module"
"commonjs"
"esnext"
"strict": true
"outDir"
"rootDir"
"esModuleInterop": true
其次,VSCode的调试配置(
launch.json
preLaunchTask
除了这些核心配置,VSCode的一些扩展也极大地提升了TypeScript的开发体验:
@typescript-eslint/parser
最后,利用VSCode的“任务”(
tasks.json
tsc --watch
ts-node
tsc
node
在选择运行TypeScript代码的方式时,
ts-node
tsc
node
ts-node
ts-node your-script.ts
tsc
.js
launch.json
ts-node
ts-node
tsc
tsc
node
dist
tsc
.map
tsc
node
tsc --watch
.js
dist
.gitignore
在我看来,如果你正在进行一个大型的、需要部署到生产环境的项目,那么
tsc
node
ts-node
ts-node
nodemon
ts-node
tsc
以上就是VSCode怎么执行TS脚本_VSCode运行TypeScript代码和编译教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号