如何处理由于较新的TypeScript版本而引起的库重大更改

时间:2018-08-03 10:00:51

标签: typescript semantic-versioning

作为图书馆的拥有者,您渴望为消费者提供尽可能多的最佳功能,同时使破坏性更改的数量降至最低。现在,据我了解,您的库(如果使用TypeScript编写)取决于TS的特定版本。假设我们突然使用了v2.8.x,由于一项强大的新功能,我们想升级到TSv3.x.x。 发生什么情况是,继SemVer之后,我的下一个版本(包括TS依赖项凸起)的库将不得不作为一项重大更改发布?

与此同时,JavaScript使用者也可以使用该库,他们不会觉得有什么大的麻烦,因为对于他们来说,不使用类型定义,实际上没有任何更改。因此,对于这里的最佳实践,我感到有点困惑。

1 个答案:

答案 0 :(得分:1)

  

说我们突然在v2.8.x上,由于一个强大的新功能,我们想升级到TSv3.x.x。发生的结果是,继SemVer正确之后,我的库的下一个发行版(包括TS依赖项凸起)将不得不作为一项重大更改发布。

如果您的库类型定义(生成的.d.ts文件)已用于与TS2.8一起使用,而不再与TS2.8一起使用,那么您应该发布为主要。

请注意,很可能不会因为更改ts版本而发生这种情况。您必须在类型中积极使用一些新的 signature TS功能来引起这种情况。

  

与此同时,JavaScript使用者也可以使用该库,他们不会觉得有什么大的麻烦,因为对于他们来说,不使用类型定义,实际上没有任何更改

并非所有重大变化都会影响所有人。 JS用户可以读取更改日志并忽略。