TypeScript 4.6 进入候选发布阶段,新功能一览

2,582

TypeScript 4.6目前已经进入了候选发布阶段,自测试版发布以来,TypeScript增加了控制流分析和ES2022输出目标的功能。

本次发布的版本是在1月21日发布的bata版本的迭代版本。当将单个属性分解为常量声明时,或将参数分解为从未分配给的变量时,TypeScript将检查分解后的类型是否为有区别的并集。如果是这样,TypeScript可以根据对其他变量的检查来缩小变量类型。

TypeScript 4.6中增加了一个新功能,TypeScript的--target 选项支持ES2022,这意味着像类域这样的功能有了一个稳定的输出目标,它们可以被保留下来。此外,新的内置功能,如数组上的at() 方法,可以用这个新的--target 设置或用--lib es2022

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

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

npm install typescript@rc

据悉,TypeScript 4.6将在本月作为生产版本发布。

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