当前位置: 首页 > 面试题库 >

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

柳深
2023-03-14
问题内容

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

如果我以茉莉花为例,则类型定义的现有版本为

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版的茉莉花,应该选择哪个版本的@ 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

谢谢


问题答案:

DefinitelyTyped软件包的主要版本和次要版本应该与它们所针对的软件包的主要版本和次要版本相对应。每当.d.ts文件由于其他原因更改时,补丁程序版本就会增加。由于次要版本不应表示重大更改,因此从理论上讲,您可以使用2.x.y可用于2.a.b.c库的最高定义文件。

但是现在开始警告。

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

* 实际上,没有人做



 类似资料:
  • 问题内容: 我想知道如何你在那里处理有兴趣 撞版本号 为新版本问题。 如何处理相关文件(如手册页等)中的版本号 该软件是使用gnu工具链构建的,因此可以使用autoconf,automake等并将其用作应用程序的版本号。这样就可以重用信息。 git用作vcs。 一种可能性是在Makefile.am中引入一个 额外的新 目标,该目标执行sed / awk替换所有关联文件中的版本号和日期。该目标可以在

  • 问题内容: 我一直在想,用于Android开发的Java版本与Java SE版本之间的关系。例如,我今天正在阅读有关Java SE 7中添加的功能“类型推断和通用方法”的信息。我不知道自己,“我可以在Android代码中使用它吗?” 当然,我可以将代码输入到Android项目中,看看它是否可以编译,但是我更愿意在自己的脑海里有了某种映射。 我已经尝试使用Google搜索此信息,检查Android文

  • 软件包的版本号是个奇怪的东西。它们看起来像十进制的数字,但它们不是。 例如,一个版本号通常的形式为 2.6.4。如果你需要比较两个版本号, 不能做简单的字符串比较,因为 2.6.4 会比 2.6.12 大;也不能进行数字比较, 因为它们不是有效地数字。 Puppet 的 versioncmp 函数会帮我们解决这个问题。 若你给它传递两个版本号,它会比较它们,并返回一个值,指出谁是更大的: ve

  • 在OSGi bundles中,用一个版本号导出和导入包。包仍然定义了一个版本。这在我看来是多余的。

  • 问题内容: 我确定会找到重复的问题或令人满意的答案,但我没有。 我正在寻找以下问题的答案: Java EE / J2EE和J2SE / JDK版本之间有官方关联吗? 如果答案是肯定的,它写在哪里? 如果答案是否定的,那为什么呢?并且有一个非官方的版本表(例如,JDK 1.4与J2EE 1.3配合得很好,JDK 1.5与J2EE 1.4配合得很好,JDK 1.6与Java EE 5配合得很好) 我可

  • 问题内容: 如何使用npm显示模块的最新版本?我期待有类似的打印输出。 问题答案: 您可以使用: (因此将立即返回)。