所以也许我很困惑,但是我想如果将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
文件的机制?还是我只是某个地方配置错误? (目前,我已经尝试了许多不同的配置;似乎没有任何效果)
答案 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
中-例如通过files
,include
,请参见here 如果您可以将lib
作为npm软件包使用而您
types
字段,您可以在其中定义所有必需的类型。希望,会有所帮助。