TypeScript 中的 declarationDir

说明 declarationDir 如何单独指定 .d.ts 的输出目录,以及它为什么常和 declaration 一起出现。

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

[!info] related notes

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 没有意义。

它更偏发布与构建组织

这个选项主要影响产物布局,不改变类型语义本身。

参考信息

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