TypeScript 3.9 现已发布,该版本改进了编译器和编辑体验,并减少了错误和崩溃。具体更新内容如下:
- Inference 和
Promise.all
改进 - 关于 awaited type 的变化
微软最初预计在 TypeScript 3.9 版本中发布 awaited,但在使用现有代码库运行早期 TypeScript build 时,该团队意识到这项功能还需要进一步打磨才能正式交付。因此,其决定将该功能从主分支中剥离出来,直到做好服务用户的一切准备。他们计划对该功能进行更多的试验,但不会在此版本中提供它。
- 速度改进
微软方面称:“在某些代码库上,每个拉取请求的编译时间均减少了约 5-10%。总的来说,我们相信我们已将 Material-ui-styles 项目的编译时间减少了约 25%。此外,我们已经收到 Microsoft 团队的反馈,TypeScript 3.9 将其编译时间从 26 秒减少到了 10 秒左右”。同时,其还对编辑器方案中的文件重命名功能进行了一些更改。
// @ts-expect-error
注释
当一行代码以这种类型的注释开头时,TypeScript 将防止报告错误。如果没有错误,它将通知开发人员 // @ts-expect-error 不必要。此注释的行为类似于 // @ts-ignore,但是 // @ts-ignore 在代码行没有错误时不执行任何操作。微软已在其 TypeScript 3.9 公告中为每种类型的注释编制了适当的用例列表。
- 条件表达式中的未调用函数检查
TypeScript 团队将未报告函数检查的错误报告扩展到三元条件。以前,该功能仅适用于 if 语句中的条件。并通过添加快速修复进一步改善了所谓的功能检查体验。
- 编辑器改进
- JavaScript 中的 CommonJS 自动补全
- 代码操作保留换行符
- 快速修复缺失的返回表达式
- 支持“Solution Style” tsconfig.json 文件
此外,开发团队还在此版本中引入了许多重大更改,更多详细信息可查看官方说明。