TypeScript 4.7 在 Node.js 中添加了 ESM 支持

1180

TypeScript 4.7 现在处于 beta 版本,该版本为 Node.js 12 提供 ECMAScript 模块 (ESM) 支持以及大量编码加强功能。

TypeScript 4.748 号发布,是 Microsoft 最新的 TS 版本。为 Nodejs 12 添加 ESM 支持最早是 TypeScript 4.5 计划,但最终被推迟到 TypeScript 4.7

TypeScript 4.5 仅提供了对 Node.js 中 ECMAScript 模块的仅部分支持,这些模块可以通过打包重用代码。由于 Node.js 构建在基于 CommonJS 规范下的模块系统,因此实现全面的支持非常困难,因此 TypeScript 4.7 添加了两个 module 功能配置: node12nodenext

TypeScript 4.7 将于 510 日进入候选发布阶段,随后于 524 日发布最终版本。目前测试版可以通过 NPM 访问: npm install typescript@beta

TypeScript 4.7 中的其他功能包括:

  1. 为了控制模块检测,TypeScript 4.7 引入了选项moduleDetection
  2. 提供 moduleSuffixes 选项可自定义模块说明符的查找。
  3. 通过对计算机属性的控制流分析,TypeScript 分析计算属性的类型并正确缩小它们
  4. TypeScript 现在可以对对象和数组的函数执行更精细的推理。这允许这些函数的类型以从左到右的方式始终如一地流动,就像普通参数一样
  5. 函数和构造函数可以输入类型参数
  6. typeof 可以对私有字段执行查询
  7. 为对象文字方法提供了片段完成
  8. strictNullChecks 下,类型检查器禁用了为向后兼容而维护的类型安全漏洞,其中类型参数可分配给 {}object。这是一个突破性的变化
  9. readonly 元组的属性 length 也会被视为 readonly