Visual Studio Code 中的 TypeScript 教程
TypeScript 是 JavaScript 的一个类型超集,它可以编译成纯 JavaScript。它提供了类、模块和接口,帮助您构建健壮的组件。
安装 TypeScript 编译器
Visual Studio Code 包含 TypeScript 语言支持,但不包含 TypeScript 编译器 tsc。你需要全局或在工作区中安装 TypeScript 编译器,以便将 TypeScript 源代码转译为 JavaScript (tsc HelloWorld.ts)。
安装 TypeScript 最简单的方法是通过 npm,即 Node.js 包管理器。如果你已安装 npm,可以通过以下方式在你的计算机上全局安装 (-g) TypeScript
npm install -g typescript
您可以通过检查版本来测试安装是否成功。
tsc --version
Hello World
让我们从一个简单的 Hello World Node.js 示例开始。创建一个新文件夹 HelloWorld 并启动 VS Code。
mkdir HelloWorld
cd HelloWorld
code .
在文件资源管理器中,创建一个名为 helloworld.ts 的新文件。

现在添加以下 TypeScript 代码。您会注意到 TypeScript 关键字 let 和 string 类型声明。
let message: string = 'Hello World';
console.log(message);
要编译您的 TypeScript 代码,可以打开 集成终端 (⌃` (Windows, Linux Ctrl+`)) 并输入 tsc helloworld.ts。这将编译并创建一个新的 helloworld.js JavaScript 文件。

如果您已安装 Node.js,则可以运行 node helloworld.js。

如果您打开 helloworld.js,会发现它看起来与 helloworld.ts 没有太大区别。类型信息已被移除,let 现在变成了 var。
var message = 'Hello World';
console.log(message);
IntelliSense
在 VS Code 中,您可以看到诸如语法高亮和括号匹配等语言功能。在编辑器中输入时,您可能已经注意到了 IntelliSense,这是由 VS Code 和 TypeScript 语言服务器提供的智能代码补全和建议。在下方您可以看到 console 的方法。

当您选择一个方法时,会获得参数帮助,并且随时可以获取悬停信息。

tsconfig.json
到目前为止,在本教程中,您一直依赖 TypeScript 编译器的默认行为来编译 TypeScript 源代码。您可以通过添加一个 tsconfig.json 文件来修改 TypeScript 编译器选项,该文件定义了 TypeScript 项目设置,例如 编译器选项 以及应该包含的文件。
重要提示:要在本教程的其余部分使用 tsconfig.json,请在不指定输入文件的情况下调用 tsc。TypeScript 编译器会自动查找 tsconfig.json 以获取项目设置和编译器选项。
添加一个简单的 tsconfig.json,将选项设置为编译为 ES5 并使用 CommonJS 模块。
{
"compilerOptions": {
"target": "ES5",
"module": "CommonJS"
}
}
编辑 tsconfig.json 时,IntelliSense (⌃Space (Windows, Linux Ctrl+Space)) 将为您提供帮助。

默认情况下,如果未包含 files 属性,TypeScript 会自动包含当前文件夹及其子文件夹中的所有 .ts 文件,因此我们不需要显式列出 helloworld.ts。
更改构建输出
将生成的 JavaScript 文件与 TypeScript 源代码放在同一个文件夹中,在大型项目中会显得很乱,因此您可以使用 outDir 属性为编译器指定输出目录。
{
"compilerOptions": {
"target": "ES5",
"module": "CommonJS",
"outDir": "out"
}
}
删除 helloworld.js 并运行不带选项的 tsc 命令。您会看到 helloworld.js 现在被放置在 out 目录中。
请参阅 转译 TypeScript 以了解 TypeScript 语言服务的其他功能,以及如何使用任务直接从 VS Code 运行构建。
错误检查
TypeScript 通过强大的类型检查帮助您避免常见的编程错误。例如,如果您为 message 分配一个数字,TypeScript 编译器将报错:'error TS2322: Type '2' is not assignable to type 'string'。您可以在 VS Code 的编辑器中(带有悬停信息的红色波浪线)和“问题”面板中看到类型检查错误 (⇧⌘M (Windows, Linux Ctrl+Shift+M))。[ts] 前缀表示此错误来自 TypeScript 语言服务。

快速修复
TypeScript 语言服务拥有一套强大的诊断功能,可以发现常见的编码问题。例如,它可以分析您的源代码并检测不可达代码,这些代码在编辑器中会以暗色显示。如果您将鼠标悬停在源代码行上,会看到解释说明;如果您将光标放在该行上,则会出现“快速修复”灯泡。

点击灯泡或按 ⌘. (Windows, Linux Ctrl+.) 会弹出“快速修复”菜单,您可以从中选择删除不可达代码修复。
此外,代码操作小部件:包含附近的快速修复 (editor.codeActionWidget.includeNearbyQuickFixes) 是默认启用的设置,它允许通过 ⌘. (Windows, Linux Ctrl+.)(命令 ID editor.action.quickFix)激活行内最近的快速修复,无论您的光标在该行何处。
该命令会突出显示将通过快速修复进行重构或修复的源代码。普通代码操作和非修复重构仍可在光标位置激活。
调试
VS Code 内置了对 TypeScript 调试的支持。为了支持 TypeScript 与执行中的 JavaScript 代码联合调试,VS Code 依赖 源映射 (source maps),以便调试器在原始 TypeScript 源代码和运行中的 JavaScript 之间进行映射。您可以通过在 tsconfig.json 中设置 "sourceMap": true 在构建过程中创建源映射。
{
"compilerOptions": {
"target": "ES5",
"module": "CommonJS",
"outDir": "out",
"sourceMap": true
}
}
通过运行 tsc 进行重新构建,现在您应该会在 out 目录中看到一个与 helloworld.js 并列的 helloworld.js.map 文件。
在编辑器中打开 helloworld.ts,按 F5。如果您安装了其他调试器扩展,则需要从下拉菜单中选择 Node.js。
调试器将启动会话,运行您的代码,并在“调试控制台”面板中显示“Hello World”消息。

在 helloworld.ts 中,通过点击编辑器左侧的边距设置断点。如果设置了断点,您会看到一个红色圆圈。再次按 F5。执行将在断点处停止,您将能够在运行和调试视图 (⇧⌘D (Windows, Linux Ctrl+Shift+D)) 中查看变量值和调用堆栈等调试信息。

请参阅 调试 TypeScript 以了解更多关于 VS Code 内置 TypeScript 调试支持的信息,以及如何为您的项目场景配置调试器。
后续步骤
本教程是对使用 VS Code 进行 TypeScript 开发的快速介绍。请继续阅读以了解更多关于使用 VS Code 的 TypeScript 编译和调试支持的信息。
- 转译 TypeScript - 使用 VS Code 强大的任务系统来编译 TypeScript。
- 编辑 TypeScript - TypeScript 的特定编辑功能。
- 重构 TypeScript - TypeScript 语言服务提供的有用重构。
- 调试 TypeScript - 为您的 TypeScript 项目配置调试器。
常见问题
无法启动程序,因为找不到相应的 JavaScript 文件
您很可能没有在 tsconfig.json 中设置 "sourceMap": true,导致 VS Code Node.js 调试器无法将您的 TypeScript 源代码映射到运行中的 JavaScript。请开启源映射并重新构建您的项目。