当前位置: 首页 > 面试题库 >

Node.js 12的TypeScript tsconfig设置?

蓬弘
2023-03-14
问题内容

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


问题答案:

从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"
  }
}


 类似资料:
  • 问题内容: 在Obj-C中 将设置contentMode。 为什么 在Swift中不能工作? 问题答案: 令人困惑的是,Swift删除了ObjC枚举值的前缀: 这是因为Swift已经知道正在使用哪种枚举类型。另外,您也可以指定枚举: 注意:在版本3之前的Swift版本中,“ scaleAspectFill”需要大写。

  • 我正在开发一个应用程序,我显式地将应用程序的语言环境设置为阿拉伯语。然而,我想收集英语的电话号码。我如何才能将EditText和TextView的语言环境显式地设置为美国英语。 下面是我如何设置应用程序区域设置的。我有一门助手课 在我的活动中,我在中使用这个助手,如下所示: 如何分别为我们设置EditText或TextView的区域设置?

  • 问题内容: 我终于找到了为什么我的应用程序崩溃而无法发布的原因。ProGuard确实从我的应用程序中剥离了代码,但我通过在proguard- android.txt(在sdk中找到)中使用keep命令手动添加类来防止了这种情况。 对于Facebook,我使用了: 但我认为我仍然缺少一些东西。该应用程序现在没有崩溃,但我无法登录Facebook并使用Open Graph。当我在调试模式下构建时,一切

  • 问题内容: 我试图用d3.js为s svg:image(嵌入SVG中的图像)制作圆角。我找不到如何正确设置图像样式的方法,因为根据W3C规范,我应该可以使用CSS,但是较宽的边框或圆角的边缘对我来说都是有效的。 提前致谢。 编辑: 经过测试的浏览器:Firefox,Chrome 问题答案: “边界半径”不适用于svg:image元素(无论如何)。一种解决方法是创建带有圆角的矩形,并使用剪切路径。

  • 问题内容: 我有以下结构。 并且我有以下JavaScript变量: 如何更改带有变量ID的iframe的内容? 我试过了: 这给了我非常不寻常的回报,它将当前页面的所有内容更改为 Ex:样式,背景等。 如何使用包含的变量设置iframe的内容? 更新#1 :变量的内容如下-> 施加此变量的iframe后我得到这样[通过萤火检查] 需要注意的是它不必须,标签,但上述一个[VAR s]的有标记。 问题

  • 问题内容: 我是mySql的新手。我正在尝试替换表的xml列中的值。 我的选择方法有效。 我的替换方法没有。我一直在寻找正确的语法… 一些背景: 当我删除漫画页面时会出现这种情况。 它在页码上留下了空白,之后我要么: 遍历所有漫画,并消除页码中的任何空白。 或者 遍历pageNumber大于已删除页面的所有漫画,并将其pageNumber减小1。 问题答案: 怎么样

  • 我有一个java webapp,它使用log4j来记录消息。这个webapp是我写的jar文件的包装器。当我在Eclipse的内置Jetty中运行我的webapp时,我的JAR日志(LOG.info(…)信息)打印出来就可以了。现在,我下载了Jetty的一个独立实例,并从那里运行了我的web应用程序。使用Jetty打包的默认log4j设置,我无法从我的JAR中看到任何日志。我只看到Jetty日志和

  • 我试图设置并检查NFC标签(类型:NTAG213)中的密码,但当我试图设置密码时,总是收到< code>IOException(收发失败)。 我不明白我必须为密码和ACK包设置哪个页面。这是我使用 Xamarin 用 C# 编写的代码。请随时用原生的Android Java代码回复。