Typescript不会复制d.ts文件进行构建

时间:2019-05-07 08:08:38

标签: typescript typescript-typings .d.ts

所以也许我很困惑,但是我想如果将declaration:true添加到tsconfig.json中,我可以让它tsc复制我的*.d.ts文件,以及已转码的代码,并且{ 1}}个文件?

EG:

d.ts

我希望tsc的结果像这样:

- src
 - lib
   - types.d.ts
   - foo.ts

但是,我似乎无法将- build - lib - types.d.ts - foo.js - foo.d.ts 复制到我的构建目录中。

打字稿是否不提供任何复制types.d.ts文件的机制?还是我只是某个地方配置错误? (目前,我已经尝试了许多不同的配置;似乎没有任何效果)

1 个答案:

答案 0 :(得分:1)

您是对的-tsc不会将您的自定义types.d.ts复制到输出目录。 tsc仅考虑您的输入文件,并为每个文件生成一个corresponding d.ts文件。

让我引用打字稿开发人员的一些有用的phrases来说明他们的观点:

  

您使用的.d.ts文件是构建系统的输入,而不是输出。使用.d.ts中的某些类型但让您的输出不使用这些类型是完全合理的,因此没有理由将输入.d.ts与您的构建结果一起分发。 [...]听起来好像您想在构建工具中执行构建后步骤,以便在需要的位置复制相关的.d.ts文件。

  

.d.ts文件被视为“引用”,编译器不会触摸它们,移动它们或重新创建它们。

所以基本上我想到了这些选择:

  • 在构建步骤中手动复制types.d.ts
  • 以某种方式将types.d.ts集成到输入文件中-当您要将它们与源捆绑在一起时,我认为它们无论如何都必须相互关联(?)。
  • 您可以尝试将types.d.ts直接包含在tsconfig.json中-例如通过filesinclude,请参见here

如果您可以将lib作为npm软件包使用而您

  • ...它的所有者,在package.json中提供一个types字段,您可以在其中定义所有必需的类型。
  • ...不是它的所有者,您可以将其定义为ambient module

希望,会有所帮助。