Lin*_*äck 77 node.js typescript
tsconfig输出将在 Node.js 12 上运行的代码的最佳 TypeScript设置是什么?
Lin*_*äck 205
从 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 或更早版本中引入的函数和属性。实际上,这意味着您可以使用 egString.prototype.trimStart和Array.prototype.flat。
除了 ES2019,Node.js 12 还支持来自 ES2020 的BigInt& matchAll,因此我们包含了来自 ES2020 的附加定义。
因此,完整的配置将是:
{
"compilerOptions": {
"lib": ["es2019", "es2020.bigint", "es2020.string", "es2020.symbol.wellknown"],
"module": "commonjs",
"target": "es2019"
}
}
Run Code Online (Sandbox Code Playgroud)
如果您的目标是 Node.js12.9.0或更新版本,您可以简单地指定"lib": ["es2020"]该版本支持ES2020 中引入的所有新功能和属性。但它不支持新的 JavaScript语法,因此您仍然必须继续使用"target": "es2019".
因此,完整的配置将是:
{
"compilerOptions": {
"lib": ["es2020"],
"module": "commonjs",
"target": "es2019"
}
}
Run Code Online (Sandbox Code Playgroud)
如果您正在运行 Node.js 16,您可以在此处看到我对 Node.js 16 的类似回答
如果您正在运行 Node.js 14,您可以在此处看到我对 Node.js 14 的类似回答
如果您正在运行 Node.js 10,您可以在此处看到我对 Node.js 10 的类似回答
如果你正在运行 Node.js 8 你可以在这里看到我对 Node.js 8 的类似回答
rra*_*naa 21
翻译:博士
TypeScript 维护了与 node 版本对应的 target、module 和 lib 的映射。你可以在这里找到它 https://github.com/microsoft/TypeScript/wiki/Node-Target-Mapping
使用tsconfig bases更容易。
运行npm install --save-dev @tsconfig/node12然后在tsconfig.json中
{
"extends": "@tsconfig/node12/tsconfig.json",
// ...your configrations
}
Run Code Online (Sandbox Code Playgroud)
有一些适用于不同环境的 tsconfig 基础,并且社区不断添加更多。
| 归档时间: |
|
| 查看次数: |
22840 次 |
| 最近记录: |