TypeScript 编译:tsc 命令与 tsconfig.json
TypeScript 编译器 (tsc) 是将 TypeScript 代码转换为可执行 JavaScript 代码的核心工具。通过配置 tsconfig.json,你可以精确控制代码的编译方式、输出目录以及语法检查的严格程度。以下指南将带你从零开始掌握 tsc 命令的使用与配置文件的编写。
基础编译:直接使用 tsc 命令
在没有配置文件的情况下,tsc 也能完成基本的编译工作。
-
确保 全局安装了 TypeScript,或在当前项目中已将其作为开发依赖安装。
在终端中 输入 以下命令检查版本:tsc -v -
创建 一个名为
demo.ts的文件,并 写入 以下代码:const message: string = "Hello TypeScript"; console.log(message); -
执行 编译命令,将
.ts文件转换为.js文件:tsc demo.ts -
查看 当前目录,你会发现生成了一个同名的
demo.js文件。此时,编译过程使用的是默认配置(如 ES3 语法标准,输出到当前目录)。
初始化配置:生成 tsconfig.json
当项目变得复杂,涉及多个文件或需要特定的编译目标时,手动输入大量参数会非常繁琐。tsconfig.json 用于定义项目的根目录和编译选项。
-
在 项目根目录下,打开 终端。
-
运行 初始化命令:
tsc --init -
观察 目录结构,此时会生成一个带有详细注释的
tsconfig.json文件。 -
编辑 该文件,删除 大部分默认注释,仅保留核心配置以便理解:
{ "compilerOptions": { "target": "es2016", "module": "commonjs", "outDir": "./dist", "rootDir": "./src", "strict": true } }
核心配置选项详解
理解 compilerOptions 中的常用字段是高效使用 TypeScript 的关键。
| 配置项名称 | 推荐值 | 作用说明 |
|---|---|---|
target |
"es2016" |
指定 编译后的 JavaScript 版本(如 ES5, ES6 等)。 |
module |
"commonjs" |
指定 模块化代码的生成方式(如 CommonJS, ESNext, System 等)。 |
outDir |
"./dist" |
设置 编译后的文件存放目录。 |
rootDir |
"./src" |
指定 源代码(.ts 文件)的入口根目录。 |
strict |
true |
开启 所有严格类型检查选项,建议始终保持开启。 |
-
创建 一个
src文件夹。 -
移动 之前的
demo.ts文件到src目录下。 -
修改
tsconfig.json,设置outDir为"./dist",rootDir为"./src"。 -
运行 编译命令,此时无需指定文件名:
tsc -
检查 项目目录,你会看到
dist文件夹被自动创建,其中包含了编译后的demo.js。
进阶控制:包含与排除文件
在大型项目中,你可能只想编译部分代码,或者忽略测试文件。tsconfig.json 提供了 include 和 exclude 字段来过滤文件。
-
打开
tsconfig.json文件。 -
添加
include字件匹配规则,指定 需要编译的文件:{ "compilerOptions": { "target": "es2016", "module": "commonjs", "outDir": "./dist" }, "include": ["src/**/*"] } -
添加
exclude字段,排除 不需要编译的文件或目录(例如node_modules或测试文件):{ "compilerOptions": { "target": "es2016", "module": "commonjs", "outDir": "./dist" }, "include": ["src/**/*"], "exclude": ["node_modules", "**/*.spec.ts"] }*注:
**/*表示匹配任意子目录下的任意文件。*
自动化编译:监视模式
在开发过程中,每次修改代码后手动运行 tsc 非常低效。使用监视模式可以让编译器在文件发生变化时自动重新编译。
-
启动 监视模式:
tsc --watch -
观察 终端输出,屏幕会显示
Watching for file changes.。 -
修改
src/demo.ts中的代码,例如 改变 变量值:const message: string = "Hello Watching Mode"; console.log(message); -
保存 文件。终端会自动检测到变化并立即触发重新编译,更新
dist目录下的 JS 文件。 -
退出 监视模式,按下
Ctrl + C。
编译流程概览
TypeScript 的编译过程是由 tsc 读取配置、定位文件、类型检查并最终输出代码的过程。以下是核心工作流的逻辑示意:
-
当你 执行
tsc命令时,编译器首先 寻找 当前目录下的tsconfig.json。 -
找到配置文件后,编译器 解析
compilerOptions中的各项参数(如target、module)。 -
编译器根据
include和exclude规则,锁定 所有需要处理的.ts文件。 -
编译器对代码进行类型检查。如果
strict模式开启且代码存在类型错误,则 报告 错误并停止生成 JS 文件(取决于noEmitOnError设置)。 -
如果类型检查通过,编译器将 TypeScript 代码转换为指定的 JavaScript 代码,并 输出 到
outDir指定的目录中。

暂无评论,快来抢沙发吧!