TypeScript 4.6松动了

144 阅读2分钟

TypeScript 4.6松动了

微软的强类型JavaScript的下一个版本将允许在super()之前的构造函数中编写代码,改进递归深度检查,以及更多

TypeScript 4.6是微软的强类型JavaScript超集的下一个迭代版本,已经进入了测试版,对编码和控制流分析进行了改进。该测试版于1月21日宣布。

一项改进放宽了编码限制,允许在构造函数中的代码在super() 。在JavaScript类中,在引用this 之前必须调用super() 。TypeScript也执行了这一点,但根据TypeScript 4.6的公告,这有点太严格了。如果一个构造函数中包含有属性初始化器,那么在构造函数的开头包含任何代码都是一个错误。这使得检查super() 是否在引用this 之前被调用变得很 "便宜",但导致有效代码被拒绝。TypeScript 4.6放宽了这种检查。它还允许其他代码在super() 之前运行,同时确保super() 在引用this 之前出现在最高层。

该测试版可以通过NuGet或NPM访问。

npm install typescript@beta

TypeScript 4.6将于2月8日作为候选版本发布,2月22日作为生产版本发布。在TypeScript 4.6的其他地方:

  • 通过对依赖参数的控制流分析,TypeScript可以缩小依赖其他参数的范围,在某些情况下,TypeScript会从其余参数的签名中推断出来。
  • 改进的递归深度检查为递归类型提供更好的关系检查。
  • TypeScript 现在可以推断出立即索引到映射的对象类型的索引访问类型。
  • JavaScript文件中的语法和绑定错误集已被扩展。如果开发者在编辑器(如Visual Studio或Visual Studio Code)中打开JavaScript文件,或者通过TypeScript编译器运行JavaScript代码,就会看到这些错误。
  • 一个跟踪分析工具已经发布,以帮助遇到构建性能问题的团队。
  • 对象休息表达式现在会放弃那些看起来是不可传播的或通用对象的成员。这是一个突破性的变化。

其前身TypeScript 4.5版本已于去年11月发布,并进行了Promise改进。