可以在 Typescript 库中的 package.json 中将 @types 库作为正常依赖项吗?

Posted

技术标签:

【中文标题】可以在 Typescript 库中的 package.json 中将 @types 库作为正常依赖项吗?【英文标题】:It is ok to have a @types library as normal dependency in package.json in a Typescript lib? 【发布时间】:2019-02-03 04:11:58 【问题描述】:

...如果 Typescript 项目也应该使用该库?

我正在制作一个使用 node-fetch@types/node-fetch 的 Typescript 库,并将该库发布到公司内部 NPM 中。

如果我只将 @types/node-fetch 声明为开发依赖项,那么稍后库的用户(也在他们的项目中使用 Typescript)将需要手动安装缺少的类型,因为开发依赖项不会传播。

到目前为止,我找到的唯一解决方案是将@types/node-fetch 声明为正常依赖项,但不知何故感觉非常错误(因为“运行时”通常不需要类型)。

这种方法正确吗?还是更好的方法?

【问题讨论】:

【参考方案1】:

如果您的公共 API 依赖于来自 @types/node-fetch 的声明,则将 @types/node-fetch 声明为正常依赖项是正确的。见this thread。

【讨论】:

以上是关于可以在 Typescript 库中的 package.json 中将 @types 库作为正常依赖项吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 package.json 中的 typesVersions 字段为较新的 typescript 版本提供更严格的类型?

使用TypeScript中的TypeScript库

如何在 TypeScript 中导入 package.json?

Typescript:导入导入json文件的js库

在本地引用 TypeScript dom lib 类型

从 Typescript 项目中的外部文件继承并声明放大生成的类型