TypeScript 4.7 现在处于 beta 版本,该版本为 Node.js 12 提供 ECMAScript 模块 (ESM) 支持以及大量编码加强功能。
TypeScript 4.7 于 4 月 8 号发布,是 Microsoft 最新的 TS 版本。为 Nodejs 12 添加 ESM 支持最早是 TypeScript 4.5 计划,但最终被推迟到 TypeScript 4.7。
TypeScript 4.5 仅提供了对 Node.js 中 ECMAScript 模块的仅部分支持,这些模块可以通过打包重用代码。由于 Node.js 构建在基于 CommonJS 规范下的模块系统,因此实现全面的支持非常困难,因此 TypeScript 4.7 添加了两个 module 功能配置: node12 及 nodenext。
TypeScript 4.7 将于 5 月 10 日进入候选发布阶段,随后于 5 月 24 日发布最终版本。目前测试版可以通过 NPM 访问: npm install typescript@beta
TypeScript 4.7 中的其他功能包括:
- 为了控制模块检测,
TypeScript 4.7引入了选项moduleDetection - 提供
moduleSuffixes选项可自定义模块说明符的查找。 - 通过对计算机属性的控制流分析,
TypeScript分析计算属性的类型并正确缩小它们 TypeScript现在可以对对象和数组的函数执行更精细的推理。这允许这些函数的类型以从左到右的方式始终如一地流动,就像普通参数一样- 函数和构造函数可以输入类型参数
typeof可以对私有字段执行查询- 为对象文字方法提供了片段完成
- 在
strictNullChecks下,类型检查器禁用了为向后兼容而维护的类型安全漏洞,其中类型参数可分配给{}和object。这是一个突破性的变化 readonly元组的属性length也会被视为readonly