TypeScript为Node.js增加ESM支持

421 阅读2分钟

TypeScript增加对Node.js的ESM支持

微软的强类型JavaScript的4.5版本进入了测试发布阶段,新的模块设置支持Node.js。

TypeScript 4.5是微软基于JavaScript的强类型语言的升级计划,它将支持Node.js中的ECMAScript模块。

TypeScript 4.5已于10月1日作为测试版发布。可以与TypeScript一起工作的Node.js一直在努力支持ECMAScript模块(ESM),ECMAScript模块可以将JavaScript代码打包以便重复使用。微软说,这项工作一直很困难,因为Node.js是建立在不同的模块系统CommonJS上。但是ESM在Node.js 12中已经基本实现。考虑到对ESM的支持,TypeScript 4.5提供了两个新的module 设置,即node12nodenext

TypeScript 4.5将于11月2日进入候选发布阶段,并于11月16日全面上市。测试版可以通过NuGet或NPM访问:npm install typescript@betacode

在TypeScript 4.5中也有新内容:

  • 该版本引入了一种简单的方法来覆盖特定的内置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月开始普遍可用。