导读:TypeScript 5.5 带来了推断类型谓词、正则表达式语法检查、性能优化以及对 ECMAScript Set 方法的支持。
导读:TypeScript 5.5 带来了推断类型谓词、正则表达式语法检查、性能优化以及对 ECMAScript Set 方法的支持。
微软强类型 JavaScript 变体之T ypeScript 5.5 的最新版本已经正式发布。
此次更新带来了从性能和大小优化到正则表达式检查等一系列改进,并增加了对 ECMAScript 的新 Set 方法等等支持。
TypeScript 5.5 可通过 Nuget 或以下命令访问:
npm -D typescript
自发布候选版本 (RC) 以来,微软还撤销了一项更改,该更改会参考 package.json 来确定给定文件的模块格式。
根据开发者反馈表明,这一变化扰乱了工作流程,并给大型项目带来了意想不到的文件监视压力。在 TypeScript 5.6 中,微软希望恢复此功能的更细致的版本,同时研究如何优化监视不存在的文件。
自测试版以来,TypeScript 5.5 增加了对JavaScript 提出的新 Set 方法的支持。其中一些方法(例如union
、intersection
和difference
)接受另一个Set
并返回一个新的Set
作为结果。其他方法(例如isSubsetOf
)接受另一个Set
并返回一个boolean值。
该候选版本的另一个新功能是,TypeScript 的正则表达式检查变得稍微宽松一些,但仍然会对仅符合 ECMAScript 附件 B 的可疑转义进行错误诊断。
TypeScript 5.5 RC 还进行了更多性能优化,包括跳过签入transpileModule
和过滤上下文类型的优化,从而可以缩短构建和迭代时间。
TypeScript 5.5 还包含之前测试版中提供的许多其他改进。
为了提高性能和大小,语言服务和公共 API 已经进行了单态化工作。
TypeScript 的作者表示,有了单态化,使用 TypeScript API 的编辑器体验和构建工具将变得更快。这与之前在TypeScript 5.0中为Node和Symbol对象所做的工作相同,以确保它们具有一组一致的属性和一致的初始化顺序。
TypeScript 5.5 还显著减少了整个软件包大小。磁盘占用从 30.2 MB 减少到 20.4 MB,打包大小从 5.5 MB 减少到 3.7 MB。作为实现工作的一部分isolatedDeclarations
,微软改进了 TypeScript 在生成声明文件时直接复制输入源代码的频率。
TypeScript 5.5 引入了对正则表达式的基本语法检查。
TypeScript 通常会跳过代码中的大多数正则表达式,因为正则表达式在技术上具有可扩展的语法,并且 TypeScript 5.5 之前版本未尝试将正则表达式编译为早期版本的 JavaScript。
使用 TypeScript 5.5,TypeScript 现在可以推断函数在某些条件下返回类型谓词。并且通过缩小常量索引访问的控制流,当和均为有效常量时,TypeScript 现在能够缩小 for 中的表达式。
obj[key]objkey
TypeScript 5.5 使 ECMAScript 模块的 API 使用更加容易。以前,如果开发人员在 Node.js 中编写 ECMAScript 模块,则无法从typescript
包中使用命名导入。此问题已得到修复。TypeScript 现在还支持@import
具有与 ECMAScript 导入相同语法的新注释标记。
TypeScript 5.5 还添加了一个ranspileDeclaration
API,用于根据输入的源文本生成单个声明文件。该 API 类似于transpileModule
编译单个 TypeScript 代码文件的 API。