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