TypeScript 中的 references

说明 references 如何把多个 TypeScript 项目连接成显式依赖图,以及它和 composite、tsc -b 的关系。

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

[!info] related notes

TypeScript 中的 references

一句话定义

references 用来显式声明“这个 TypeScript 项目依赖另一个 TypeScript 项目”。

核心机制 / 工作原理

当你在 tsconfig.json 里写:

{
  "references": [{ "path": "../core" }]
}

TypeScript 会把当前项目与 ../core 建立项目级依赖关系。

这通常和:

  • composite
  • tsc -b
  • .d.ts 输出

一起工作。

最小例子 / 最小场景

包 A

{
  "compilerOptions": {
    "composite": true,
    "declaration": true
  }
}

包 B

{
  "references": [{ "path": "../a" }]
}

常见用途

  • monorepo 中控制构建顺序
  • 增量构建
  • 跨项目类型消费

边界与易混淆点

references 不是路径别名

它解决的是“项目之间如何显式依赖”,不是“import 字符串怎么改写”。

references 常和 package 边界一起设计

如果项目划分本身不清楚,光加 references 不会自动让结构变优雅。

参考信息

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