TypeScript 中的 references
说明 references 如何把多个 TypeScript 项目连接成显式依赖图,以及它和 composite、tsc -b 的关系。
#tech / dev
#resource / typescript
#type / concept
#status / growing
[!info] related notes
- 所属 MOC: TypeScript MOC
- 配置入口: tsconfig 使用详解
- 并列概念: TypeScript 中的 composite, tsc, TypeScript Monorepo 中源码引用与构建引用
TypeScript 中的 references
一句话定义
references 用来显式声明“这个 TypeScript 项目依赖另一个 TypeScript 项目”。
核心机制 / 工作原理
当你在 tsconfig.json 里写:
{
"references": [{ "path": "../core" }]
}
TypeScript 会把当前项目与 ../core 建立项目级依赖关系。
这通常和:
compositetsc -b.d.ts输出
一起工作。
最小例子 / 最小场景
包 A
{
"compilerOptions": {
"composite": true,
"declaration": true
}
}
包 B
{
"references": [{ "path": "../a" }]
}
常见用途
- monorepo 中控制构建顺序
- 增量构建
- 跨项目类型消费
边界与易混淆点
references 不是路径别名
它解决的是“项目之间如何显式依赖”,不是“import 字符串怎么改写”。
references 常和 package 边界一起设计
如果项目划分本身不清楚,光加 references 不会自动让结构变优雅。
参考信息
- Project References: https://www.typescriptlang.org/docs/handbook/project-references