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

Qui*_*uim 13 node.js typescript typescript-typings

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

如果我使用jasmine作为示例,则类型定义的现有版本是

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'
Run Code Online (Sandbox Code Playgroud)

但是如果我检查一下我所拥有的茉莉花包的版本;

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'
Run Code Online (Sandbox Code Playgroud)

假设我使用的是茉莉花版本2.4.0,我应该选择哪个版本的@ types/jasmine?因为即使我使用两者中的最新版本,2.5.46也与2.5.3不匹配.

另一个例子是节点本身,在@types中基本上有6.0或7.0版本,并且打字只有下面显示的那些,6.0报告为过时.那么,什么版本的节点是那些实际上绑定的节点?

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
Run Code Online (Sandbox Code Playgroud)

谢谢

Rya*_*ugh 9

DefinitelyTyped包的主要版本和次要版本应该对应于它们所适用的包的主要版本和次要版本.每当.d.ts文件因其他原因而更改时,修补程序版本都会递增.因为次要版本不应代表重大更改,理论上,您可以使用库中2.x.y可用的最高定义文件2.a.b.c.

但现在警告开始了.

  • 定义文件中的标题可能未在适当的时间更改
  • 图书馆作者不一定遵循semver*
  • 定义文件在任何给定点,在任一方向上可能不是100%正确(即在2.5版本下列出2.6特征,或者在2.5文件中未列出2.4函数)

* 事实上,没有人这样做

  • 我的知识源于我设计和实现@types (6认同)