讲解

TypeScript 编译器 tsc 是一个 npm 包,安装它只需要 Node.js 环境。有两种常见安装方式:全局安装(npm install -g typescript)适合快速体验,项目内安装(npm install --save-dev typescript)是团队协作的正道——它能锁定编译器版本,保证所有人编译结果一致。项目内安装后,通过 npx tsc 调用项目本地版本。

日常开发中真正高频使用的不是命令行,而是编辑器的类型提示。VS Code 内置了 TypeScript 语言服务,无需任何插件就能获得自动补全、跳转定义、悬浮显示类型、实时报错等能力。事实上,即使你写的是纯 JavaScript,VS Code 也在用 TypeScript 的语言服务为你提供智能提示——这本身就能说明这套类型系统的价值。

tsc 的基本用法非常直接:tsc 文件名.ts 会在同目录生成同名 .js 文件;加上 --noEmit 则只做类型检查不输出文件(CI 里常用);加上 --watch 则进入监视模式,文件保存即重新编译。真实项目一般把这些配置写进 tsconfig.json(后面有专章),命令行只敲一个 tsc。

示例

查看本机 TypeScript 版本,确认环境可用:

tsc --version

写一个最小程序 hello.ts 并编译它。先在沙盒里准备文件(真实项目中你直接用编辑器创建即可):

printf 'const greeting: string = "你好,TypeScript";\nconsole.log(greeting);\n' > hello.ts
tsc --strict hello.ts
node hello.js

上面这条命令链做了三件事:创建源文件、用严格模式编译出 hello.js、用 Node.js 运行。注意编译产物里类型标注已经不见了——你可以打开 hello.js 验证这一点。

只检查类型、不产出文件(适合提交前自检):

tsc --strict --noEmit hello.ts

常见坑

  • 全局版本和项目版本不一致:CI 上编译通过、本地报错,多半是全局 tsc 与项目 devDependencies 里的版本不同。养成用 npx tsc 或 npm scripts 的习惯。
  • 直接运行 .ts 文件报语法错误:Node.js 不能直接执行类型标注语法(新版 Node 的实验性类型擦除除外),先编译成 .js,或者用 tsx、ts-node 这类即时运行工具。
  • 把编译产物提交进仓库:.js 产物应当通过 .gitignore 排除(或输出到 dist/ 目录),仓库里只保留 .ts 源码。
  • 以为 VS Code 报错就是编译报错:编辑器用的是内置语言服务,版本可能与项目 tsc 不同;以命令行 tsc 的结果为准。

小结

tsc 通过 npm 安装,项目内安装 + npx 调用是团队规范;VS Code 开箱即用地提供类型智能提示;日常三个命令:tsc 编译、--noEmit 只检查、--watch 监视。下一章进入语言本身:类型标注与类型推断。