tsc

TypeScript 编译器总览,说明 tsc 的职责、常用命令、build mode 与它和 tsserver 的边界。

#tech / dev #resource / typescript #type / concept #status / growing

tsc

[!info] related notes

一句话定义

tsc 是 TypeScript 编译器,用来读取源码和 tsconfig,做类型检查,并在需要时生成 JavaScript、声明文件和 sourcemap。

核心职责

tsc 主要负责三件事:

  1. 解析 TypeScript program
  2. 执行类型检查
  3. 生成编译产物

典型产物包括:

  • .js
  • .d.ts
  • .js.map
  • .d.ts.map

常用命令

tsc
tsc --noEmit
tsc --watch
tsc -b
tsc -b --watch

tsc

按当前 tsconfig 执行构建或检查。

tsc --noEmit

只做类型检查,不生成输出。团队项目里常用于 CI 或本地预检查。

tsc --watch

监听文件变化并持续重新检查 / 重新编译。

tsc -b

进入 build mode,配合 project references 按依赖顺序构建多个 TypeScript 项目。

tsc 和其他工具的边界

tsc vs tsserver

  • tsc 偏命令行构建
  • tsserver 偏编辑器智能与长期驻留服务

tsc vs bundler

tsc 负责编译和类型语义,不等于完整 bundler。代码拆分、静态资源处理、产物优化通常要靠:

  • Vite
  • Webpack
  • Rollup
  • esbuild / Rspack 等

tsc vs Babel

Babel 更偏语法转译;TypeScript 的类型语义检查通常仍要靠 tsc

适用场景

  • 纯 TypeScript 库开发
  • 需要生成 .d.ts 的包
  • monorepo 中的 project references 构建
  • 需要单独跑类型检查的 CI 流程

边界与易混淆点

tsc 不是所有前端项目的最终构建入口

现代前端项目里,很多时候 tsc 负责类型检查或声明文件生成,真正的打包和发布由框架工具链接手。

paths 只影响 TypeScript 如何理解 import

tsconfig 配了 paths,不等于运行时和 bundler 也自动懂这些 alias。

参考信息

创建于 2025/1/1 更新于 2026/5/27