我的问题源于以下情况:
我正在处理Typescript中的软件包A。我也用Typescript编写了程序包B,它将作为依赖项添加到程序包A中。
包B使用两个javascript模块(C和D),并直接从各自的@types库(@ types / C和@ types / D)导入类型。
虽然程序包B之所以可以构建是因为它在dev依赖项中具有@types,但程序包A却不会,因为它将抱怨它自己的依赖项中没有C和D的定义。
有什么办法可以使A生成,但要遵循以下约束条件:
noImplicitAny
必须在ts-config中设置为true 我希望的是一种在B中声明新类型的方法,这些新类型基本上是C和D中类型的副本,或者让A不关心其节点模块中的编译问题。
答案 0 :(得分:1)
如果程序包B确实是一个独立的程序包,则您应仅将编译后的.js
文件和来自B的.d.ts
文件包括在A中(请参阅{{3}中的--declaration
标志}(如果您当前未生成.d.ts
文件)。这应该避免TypeScript尝试查找C和D的类型。
但是,如果您要从B公开的接口包含C和D的类型,那么事情会变得有些棘手。您可以: