TypeScript 中的 declarationDir
说明 declarationDir 如何单独指定 .d.ts 的输出目录,以及它为什么常和 declaration 一起出现。
#tech / dev
#resource / typescript
#type / concept
#status / growing
[!info] related notes
- 所属 MOC: TypeScript MOC
- 配置入口: tsconfig 使用详解
- 并列概念: TypeScript 中的 declaration 与 declarationMap, TypeScript 中的 outDir
TypeScript 中的 declarationDir
一句话定义
declarationDir 用来单独指定 TypeScript 声明文件的输出目录。
核心机制 / 工作原理
官方文档说明,它提供了一种方式来配置:
- declaration files emitted 的根目录
也就是:
.d.ts不一定要跟普通.js产物放在同一目录里。
例如:
{
"compilerOptions": {
"declaration": true,
"declarationDir": "./types"
}
}
这样生成的声明文件会进入 types/,而不是默认跟着普通输出目录走。
最小例子 / 最小场景
{
"compilerOptions": {
"declaration": true,
"declarationDir": "./types"
}
}
这常见于:
- 想把运行时产物和类型产物分开
- npm package 需要更清晰的发布目录
- monorepo 中希望声明文件单独归档
边界与易混淆点
它不等于 outDir
outDir 更像:
- 普通编译产物的输出目录
而 declarationDir 更像:
- 仅
.d.ts的输出目录
它通常要和 declaration 一起看
如果根本没有开启声明文件生成,那么只写 declarationDir 没有意义。
它更偏发布与构建组织
这个选项主要影响产物布局,不改变类型语义本身。
参考信息
- TSConfig
declarationDir: https://www.typescriptlang.org/tsconfig/declarationDir.html