Definitelytyped: 绝对类型包中版本的含义是什么

创建于 2016-12-09  ·  3评论  ·  资料来源: DefinitelyTyped/DefinitelyTyped

我认为绝对类型包的版本不应该与真实包的版本匹配。 例如,在我写这个问题的时候,最新版本的lodash是 '4.17.2 and the latest version of @types/lodash is 4.14.43 . This probably means that the typings are for lodash -v4.14.43`。 因此,当我们想要更改类型包时会感到困惑,因为没有很好的方法来增加类型包,因为它是包的真实版本。 这将破坏在许多项目中安装 npm 包。

我建议打字包不要遵循真实包的确切版本。 例如:

lodash 版本: 4.14.43

@types/lodash 版本: 4.1.1

但是在 .d.ts 文件中,我们应该明确地写出兼容的 lodash 包版本。

对于旧版本的 lodash,我们也可以使用@types/lodash-3

最有用的评论

版本号的策略是尽量保持前两个数字一致。 @types/lodash 在 4.14.x 意味着它应该与 lodash 4.14 及更高版本一起使用。 最后一位数字反映了包结构的更新(IE:也许有人对 4.14 的更改做了更准确的类型定义)。

鉴于 DT 是社区支持的,似乎以下其中一项必须为真:

  1. lodash 没有引入任何需要类型相关更改的内容
  2. lodash 确实引入了更改,但社区中没有人需要/想要所说的功能
  3. lodash 确实引入了更改,但希望保持类型与稍旧的版本兼容

我猜它的#2。

至于@types/lodash-3,模块的解析方式,您需要执行类似import * as _ from "lodash-3"的操作才能获取所述类型。

所有3条评论

版本号的策略是尽量保持前两个数字一致。 @types/lodash 在 4.14.x 意味着它应该与 lodash 4.14 及更高版本一起使用。 最后一位数字反映了包结构的更新(IE:也许有人对 4.14 的更改做了更准确的类型定义)。

鉴于 DT 是社区支持的,似乎以下其中一项必须为真:

  1. lodash 没有引入任何需要类型相关更改的内容
  2. lodash 确实引入了更改,但社区中没有人需要/想要所说的功能
  3. lodash 确实引入了更改,但希望保持类型与稍旧的版本兼容

我猜它的#2。

至于@types/lodash-3,模块的解析方式,您需要执行类似import * as _ from "lodash-3"的操作才能获取所述类型。

感谢您的精彩回答。 我想到了这个问题,因为最近对 lodash 类型的更新破坏了我的代码(https://github.com/DefinitelyTyped/DefinitelyTyped/commit/34124e057f3f2baf4d1b0f17616a00221c04690c)。 显然,我们应该为 lodash 类型编写更多的测试。

对于上下文,这个另一个线程听起来好像试图保持版本号同步的策略只有一些包遵循。

此页面是否有帮助?
0 / 5 - 0 等级