处理建议:在"Announcing TypeScript 4.x"博客文章中描述对.d.ts文件的破坏性更改

km0tfn4u  于 6个月前  发布在  TypeScript
关注(0)|答案(3)|浏览(97)

建议

🔍 搜索词

博客发布说明公告降级-dts破坏性更改

✅ 可实现性检查清单

我的建议符合以下准则:

  • 这不会对现有的TypeScript/JavaScript代码造成破坏性更改
  • 这不会改变现有JavaScript代码的运行时行为
  • 这可以在不根据表达式的类型发出不同的JS的情况下实现
  • 这不是一个运行时特性(例如库功能、带有JavaScript输出的非ECMAScript语法、JS的新语法糖等)
  • 这个特性将与TypeScript's Design Goals一致。

⭐ 建议

TypeScript项目的发布公告博客文章(如this one for 4.8)是精心制作的文档。我期待着阅读每一篇。它们用有激励性的示例介绍新功能,并描述我可能需要处理的破坏性更改。
然而,有一种类型的更改我很难从这些发布文章中轻松了解(我不认为还有其他地方能回答同样的问题)。我不知道一种简单的方法来回答“如果我升级到这个版本,构建一个库,并发布它的.d.ts文件,我的库的用户是否也需要使用这个新版本?这个答案是否取决于我是否使用新功能或设置特定设置?”
例如,在TS 4.7中,使用变体注解需要.d.ts文件的消费者升级到TS 4.7;如果不使用该功能,则不需要升级。
另一方面,我认为TS 4.8中没有包含任何生成.d.ts文件的语法更改。
从某种意义上说,我正在寻找一种简单的方法来了解发布是否引入了任何downlevel-dts可能会有所帮助的更改。我认为这将在公告博客文章中很好地完成,或者在每个发布的其他易于找到的地方。

📃 动机示例

能够区分像变体注解(需要.d.ts文件的消费者升级TS)这样的功能和其他功能。

💻 用例

了解当我升级TypeScript或使用新功能时,如果我也强制我的库使用者升级TypeScript的情况。

gpnt7bae

gpnt7bae1#

这是一个好主意。我们可以把它们都整理到一个"升级说明"部分。

yizd12fk

yizd12fk2#

我可以看到。我们在4.8 RC中所做的一件事是,"Breaking Changes"变成了"Correctness Improvements and Breaking Changes"。"Upgrade Notes"只是对这个的重命名,还是一个单独的部分?

rfbsl7qr

rfbsl7qr3#

我认为升级说明应该是一个全新的整体部分,包括:

  • "实际"的中断
  • 正确性改进
  • 向后兼容性问题(即声明发射兼容性和是否需要选择加入)

相关问题