将 d.ts 文件添加到 JavaScript npm 包是否是 SemVer 规则的重大更改?

Is adding a d.ts file to a JavaScript npm package a breaking change by SemVer rules?

如果我有一个不依赖 TypeScript 的纯 JavaScript npm 包,我想添加一个 d.ts type declaration file to it, along with a new "types" property in the package.json pointing to the file, would that be considered a breaking change? Would it necessitate a major version bump according to SemVer?

我可以看到任何一种方式,因为它根本不会影响 JavaScript,并且不会破坏任何东西的 API。但是,如果有人在 TypeScript 项目中使用该库并为该库创建了自己的 d.ts 类型,它可能会与这些类型发生冲突,例如出现“重复标识符”错误。

SemVer 状态

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards compatible manner, and
  3. PATCH version when you make backwards compatible bug fixes.

添加类型声明文件显然不是错误修复,因此显然不是#3。这里的关键是,如果你添加一个类型声明文件,所有使用 API 的代码都不会中断,因为实际的 js 代码不会改变。因此,没有任何不兼容的 API 更改,这是向后兼容性的另一种说法。

这意味着,如果您添加类型声明文件,则增加次要版本号。