TypeScript 4.5 RC 版本已发布
TypeScript 4.5 候选版本 (RC) 现已发布,官方表示,从现在开始到 TypeScript 4.5 稳定发布,除了关键的 bug 修复外不会有更多的变化。
此版本主要更新:
- 实验性功能:在夜间版本支持 Node.js 运行 ECMAScript 模块
- 从 node_modules 支持
lib - 新的
Awaited类型和对Promise对象的优化 - 模板字符串可以用作判断符
- 引入 es2022 模块(可以在异步函数之外使用 await)
- 移除 Conditional Types 的尾部递归
- 禁用省略型 Import ,加入新的 Import 类型修饰符
- 现在可以检查一个对象是否有一个私有字段
- 支持 Import 断言
- 对所有系统的 Node.js 引入
realpathSync.native函数, 减少项目加载时间(Windows 少了 5-13%) 。 - 两个新的代码补全功能:重写或实现类中的方法的片段补全、JSX 属性的代码补全
- 编辑器对未解析的类型会直接展示原名(之前版本是用
any来代替未解析的类型)。
此版本的重大特性是支持 Node 12 运行 ECMAScript 模块,不过出于稳定性和用户体验,此功能暂时只在夜间版本(nightly releases)上发布。在语言编辑方面,4.5 引入了更多用于方法实现和重写的代码补全。除此之外,4.5 版本还解决了对 package.json 文件过度 realpath 调用引发的性能回归问题,且此修复被反向移植到 TypeScript 4.4.4 中。
实验性:在夜间版本支持 Node.js 运行 ECMAScript 模块
在过去的几年里,Node.js 一直致力于支持运行 ECMAScript 模块 (ESM)。 但是,Node.js 生态的基础建立在 CommonJS (CJS) 模块系统之上,两大模块的差别让 Node.js 的适配变得异常困难。
现在,此功能可用了,不过仅在 TypeScript 的夜间版本(nightly releases)中可用 , TypeScript 4.5 暂不可用。
新的代码片段自动补全
类中的方法补全
现在在重写或实现类中的方法时提供代码片段补全。在实现接口的方法,或覆盖子类中的方法时,TypeScript 不仅完成方法名称,还完成方法体的完整签名和大括号。完成后,光标将跳转到方法的主体中。
JSX 属性的代码补全
为 JSX 属性带来了片段补全:在 JSX 标签中写出一个属性时,TypeScript 已经为这些属性提供了建议;通过片段补全,可以通过添加初始化程序,并将光标放在正确的位置来节省时间。
需要注意的事项
lib.d.ts 变更
TypeScript 4.5 包含对其内置声明文件的更改,这些更改可能会影响您的编译。
Awaited 改动的影响
现在在 lib.d.ts 中使用了await,可能会导致某些泛型类型的变化,这可能会导致不兼容。
别忘了在 tsconfig.json 的检查编译器选项(compilerOptions)。
条件类型的可分配性被限制
TypeScript 不再允许将类型分配给使用 infer 或分布式的条件类型,这会导致重大的性能问题。
详细更新内容可查看更新公告原文。

