目前 TypeScript 4.7 正处于 Beta 版本,该版本为 Node.js 12 提供 ECMAScript 模块 (ESM) 支持以及大量编码增强功能。
TypeScript 4.7 是目前微软强类型 JavaScript的最新计划版本,其中支持 Node.js 12 中的 ECMAScript 模块,这一功能本来是TypeScript 4.5中应该支持的功能,但却被推迟了。在4.5版本中,仅仅推出了对 Node.js 中 ECMAScript 模块的夜间支持。
想要实现 ECMAScript 模块的打包重用代码,是很困难的,因为 Node.js 是构建在不同的模块系统 CommonJS 之上。而TypeScript 4.7通过两个设置实现了这个功能,node12
和nodenext
。具体功能实现,可以查看:github.com/microsoft/T…
TypeScript 4.7 将于 5 月 10 日进入候选发布阶段,5 月 24 日发布最终版本。测试版可以通过 NPM 进行访问:npm install typescript@beta
TypeScript 4.7 中的其他功能包括:
- 为了控制模块检测,TypeScript 4.7 引入了选项
moduleDetecti
on。
- 支持
moduleSuffixes
选项来自定义模块说明符的查找。
- 通过对计算机属性的控制流分析,TypeScript 可以分析计算属性的类型并正确缩小范围。
- TypeScript 可以对具有对象和数组的函数执行更精细的推理。允许这些函数的类型像普通参数一样,始终以从左到右的方式流动。
- 函数和构造函数可以直接输入类型参数。
- 开发人员可以明确指定类型参数的差异。
typeof
可以对私有字段执行查询。
- 组织导入以group-aware 方式执行。
- 为对象文字方法提供了代码段完成。
- 在strictNullChecks下,类型检查器禁用为向后兼容而维护的类型安全漏洞,在该漏洞中,类型参数被认为可分配给{}和object。这是一个突破性的变化。
- 只读元组现在将其属性
length
视为只读。