TypeScript推迟了对Node.js的ESM支持

81 阅读2分钟

TypeScript推迟了对Node.js的ESM支持

微软的强类型JavaScript的4.5版本已经进入候选发布阶段,支持Node.js的新模块设置被推迟到未来发布。

TypeScript 4.5是微软基于JavaScript的强类型语言的升级计划,毕竟不会包括对Node.js 12中ECMAScript模块的支持。

在10月1日披露测试版时,TypeScript 4.5计划提供这一功能,但已被推迟到未来的版本。同时,它将只在夜间发布的实验性标志下可用。对生态系统的准备情况和使用该功能的一般指导的关注促使了这一推迟。

可以与TypeScript协同工作的Node.js一直在努力支持ECMAScript模块(ESM),它可以将JavaScript代码打包以便重用。微软说,这项工作一直很困难,因为Node.js是建立在不同的模块系统CommonJS上的。但是ESM在Node.js 12中已经基本实现。

TypeScript 4.5在11月2日达到了候选发布阶段,并计划在11月16日全面推出。

TypeScript 4.5中还新增了

  • --build 模式下,由于对JSON文件进行了过多的realpath 调用,因此增加了一个性能退步。
  • 该版本引入了一个简单的方法来覆盖一个特定的内置lib ,以更好地支持来自node_moduleslib 设置。
  • 为了提高速度,Node.jsrealpathSync 函数的系统原生实现现在在所有操作系统上都得到了利用。以前,它只限于Linux。现在,它已经适应于通常对大小写敏感的操作系统,如Windows和MacOS。
  • 为JSX属性提供了片段补全。
  • 支持ECMAScript关于检查对象是否有一个私有字段的建议。另外一个ECMAScript建议,也支持导入断言。这是运行时使用的一种语法,以确保导入具有预期的格式。
  • 对未解决的类型提供了更好的编辑支持。
  • 引入了一个实用类型,即Awaited 类型,用于建模操作,如async 函数中的awaitPromises 上的.then() 方法。Awaited 对于建模现有的API非常有用。
  • 具有模板字符串的值可以被缩小。同时,模板字符串也被识别为判别符。
  • 支持一个新的module 设置,es2022 ,提供顶级的await ,意味着开发者可以在async 函数之外使用await
  • 一些尾部递归的消除是在条件类型上进行的。
  • TypeScript 4.5的一部分允许在单个命名的导入上使用type 修改器。

TypeScript通过添加静态类型的语法建立在JavaScript上。上一个TypeScript版本,TypeScript 4.4,在8月开始普遍可用。