如何将@types的版本与NodeJS Typescript中关联包的版本相关联?

我正在使用节点6.3.1的打字机2.2的nodejs项目,我想从使用types迁移到使用@types。 通过这样做,我遇到了一系列与@types文件的版本和相应的npm包之间是否存在关系有关的问题。

如果我以茉莉花为例,现有版本的types定义是

npm show @types/jasmine@* version @types/jasmine@1.3.0 '1.3.0' @types/jasmine@1.3.1 '1.3.1' @types/jasmine@1.3.2 '1.3.2' @types/jasmine@2.2.29 '2.2.29' @types/jasmine@2.2.30 '2.2.30' @types/jasmine@2.2.31 '2.2.31' @types/jasmine@2.2.32 '2.2.32' @types/jasmine@2.2.33 '2.2.33' @types/jasmine@2.2.34 '2.2.34' @types/jasmine@2.5.35 '2.5.35' @types/jasmine@2.5.36 '2.5.36' @types/jasmine@2.5.37 '2.5.37' @types/jasmine@2.5.38 '2.5.38' @types/jasmine@2.5.39 '2.5.39' @types/jasmine@2.5.40 '2.5.40' @types/jasmine@2.5.41 '2.5.41' @types/jasmine@2.5.42 '2.5.42' @types/jasmine@2.5.43 '2.5.43' @types/jasmine@2.5.44 '2.5.44' @types/jasmine@2.5.45 '2.5.45' @types/jasmine@2.5.46 '2.5.46' 

但是,如果我检查我的茉莉花包的版本,

 npm show jasmine@* version jasmine@2.0.1 '2.0.1' jasmine@2.1.0 '2.1.0' jasmine@2.1.1 '2.1.1' jasmine@2.2.0 '2.2.0' jasmine@2.2.1 '2.2.1' jasmine@2.3.0 '2.3.0' jasmine@2.3.1 '2.3.1' jasmine@2.3.2 '2.3.2' jasmine@2.4.0 '2.4.0' jasmine@2.4.1 '2.4.1' jasmine@2.5.0 '2.5.0' jasmine@2.5.1 '2.5.1' jasmine@2.5.2 '2.5.2' jasmine@2.5.3 '2.5.3' 

假设我正在使用茉莉花的版本2.4.0,我应该select@ types / jasmine的哪个版本? 因为即使使用最新的两者,2.5.46也不符合2.5.3。

另一个例子是节点本身,@types基本上有6.0或7.0版本,types只有下面显示的那些,被报告为过时的6.0。 那么,这些types的节点实际上绑定了什么版本?

 typings view dt~node --versions TAG VERSION DESCRIPTION COMPILER LOCATION UPDATED 7.0.0+20170322231424 7.0.0 github:DefinitelyTyped/DefinitelyTyped/node/index.d.ts#a4a912a0cd1849fa7df0e5d909c8625fba04e49d 2017-03-22T23:14:24.000Z 6.0.0+20161121110008 6.0.0 github:DefinitelyTyped/DefinitelyTyped/node/node.d.ts#fb7fbd28b477f5e239467e69397ed020d92817e7 2016-11-21T11:00:08.000Z 

谢谢

DefinitelyTyped软件包的主要版本和次要版本应该对应于他们所用软件包的主版本和次版本。 由于其他原因,修补程序版本会随着.d.ts文件的更改而递增。 因为次要版本不应该代表重大更改,所以理论上可以使用2.abc库可用的最高2.xy定义文件。

但现在警告开始了。

  • 定义文件中的标题可能没有在正确的时间更改
  • 图书馆作者不一定遵循semver *
  • 定义文件可能在任何给定的点上都不是100%正确的(在2.5版本下列出了2.6特性,或者在2.5文件中没有列出2.4的function)

*其实没有人会这样做