一尘不染

Node.js 12的TypeScript tsconfig设置?

node.js

tsconfig用于输出将在Node.js 12上运行的代码的最佳TypeScript 设置是什么?


阅读 285

收藏
2020-07-07

共1个答案

一尘不染

从Node.js开始12.0.0,支持100%的ES2019。如果您知道要针对该版本或更高版本,则最佳配置应如下所示:

  • "module": "commonjs"

Node.js是添加ES模块的一种方式,但是现在我们必须坚持使用CommonJS。

  • "target": "es2019"

这告诉TypeScript可以使用ES2019中的功能输出JavaScript 语法 。实际上,这意味着它将例如输出对象的rest /
spread属性和async / await语法,而不是嵌入polyfill。

  • "lib": ["es2019", "es2020.bigint", "es2020.string", "es2020.symbol.wellknown"]

这告诉TypeScript可以使用ES2019或更早版本中引入的 函数和属性 。实际上,这意味着您可以使用eg
String.prototype.trimStartArray.prototype.flat

除了ES2019,Node.js 12还支持BigIntmatchAll自ES2020,因此我们包括了ES2020的其他定义。

因此,完整的配置为:

{
  "compilerOptions": {
    "lib": ["es2019", "es2020.bigint", "es2020.string", "es2020.symbol.wellknown"],
    "module": "commonjs",
    "target": "es2019"
  }
}

如果您以Node.js12.9.0或更高版本为目标,则只需指定"lib": ["es2020"]该版本即可支持ES2020中引入的所有新
功能和属性 。不过,它不支持新的JavaScript 语法 ,因此您仍然必须继续使用"target": "es2019"

因此,完整的配置为:

{
  "compilerOptions": {
    "lib": ["es2020"],
    "module": "commonjs",
    "target": "es2019"
  }
}

2020-07-07