TypeScript 中的 incremental

说明 incremental 如何通过保存项目图缓存来加快后续编译,以及它和 composite、project references、tsc build mode 的关系。

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

[!info] related notes

TypeScript 中的 incremental

一句话定义

incremental 让 TypeScript 把上一次编译的项目图信息缓存下来,以加快后续编译。

核心机制 / 工作原理

当配置:

{
  "compilerOptions": {
    "incremental": true
  }
}

时,TypeScript 会把构建状态保存到磁盘上的 build info 文件里。

这样下一次编译时,它就不必从零重新分析整个项目。

如果你还想控制这份缓存文件具体写到哪里,可以继续看:

最小例子 / 最小场景

{
  "compilerOptions": {
    "incremental": true
  }
}

这在以下场景里最常见:

  • 大型单仓项目
  • 需要频繁跑 tsc 的本地开发流程
  • monorepo build / watch

边界与易混淆点

它是“缓存机制”,不是“项目依赖结构”

incremental 负责的是:

  • 后续编译如何更快

它不负责定义:

  • 跨项目依赖方向
  • 引用顺序

这些更接近:

  • references
  • tsc -b

它和 composite 有关联,但不等价

composite 更偏“可被引用的构建单元”;

incremental 更偏“把上次分析结果缓存起来”。

两者经常一起出现,但关注点不同。

它不会改变类型系统语义

这个选项主要影响构建性能和工作流,不改变代码本身的类型规则。

参考信息

创建于 2026/5/15 更新于 2026/5/27