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代码,就会看到这些错误。
- 一个跟踪分析工具已经发布,以帮助遇到构建性能问题的团队。