gpt4 book ai didi

node.js - Node.js 12 的 TypeScript tsconfig 设置?

转载 作者:行者123 更新时间:2023-12-02 09:38:55 24 4
gpt4 key购买 nike

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

最佳答案

截至 Node.js 12.0.0 , 100% 支持 ES2019。如果您知道您的目标是该版本或更新版本,则最佳配置如下所示:

  • "module": "commonjs"Node.js 正在添加 ES-Modules,但现在我们必须坚持使用 CommonJS。
  • "target": "es2019"这告诉 TypeScript 可以输出具有 ES2019 特性的 JavaScript 语法。在实践中,这意味着它将例如输出对象 rest/spread 属性和 async/await 语法,而不是嵌入 polyfill。
  • "lib": ["es2019", "es2020.bigint", "es2020.string", "es2020.symbol.wellknown"]这告诉 TypeScript 可以使用 ES2019 或更早版本中引入的函数和属性。在实践中,这意味着您可以使用例如String.prototype.trimStartArray.prototype.flat .
    除了 ES2019,Node.js 12 还支持 BigInt & matchAll从 ES2020 开始,因此我们包含了来自 ES2020 的附加定义。

  • 因此,完整的配置将是:
    {
    "compilerOptions": {
    "lib": ["es2019", "es2020.bigint", "es2020.string", "es2020.symbol.wellknown"],
    "module": "commonjs",
    "target": "es2019"
    }
    }

    如果您的目标是 Node.js 12.9.0或更新 ,您可以简单地指定 "lib": ["es2020"]因为该版本支持 ES2020 中引入的所有新功能和属性。虽然它不支持新的 JavaScript 语法,所以你仍然必须留在 "target": "es2019" .
    因此,完整的配置将是:
    {
    "compilerOptions": {
    "lib": ["es2020"],
    "module": "commonjs",
    "target": "es2019"
    }
    }

    如果您正在运行 Node.js 16,您可以看到我的 similar answer for Node.js 16 here
    如果您正在运行 Node.js 14,您可以看到我的 similar answer for Node.js 14 here
    如果您正在运行 Node.js 10,您可以看到我的 similar answer for Node.js 10 here
    如果您正在运行 Node.js 8,您可以看到我的 similar answer for Node.js 8 here

    关于node.js - Node.js 12 的 TypeScript tsconfig 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59787574/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com