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

节点8的推荐打字稿配置

戎俊
2023-03-14
问题内容

如果要使用节点8编译源代码,建议为打字稿配置什么?

大多数教程使用以下 tsconig.json

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs"
  }
}

但是现在我发现,并非所有可用功能都受支持。例如,['foo'].includes('bar')抛出错误: 类型’string
[]’不存在属性’includes’。

我发现了一个问题,即解决了这个问题。解决方法是使用lib es7。我可以覆盖默认库:"lib": ["es7"]

但是我不确定这是否是节点8的最佳配置-该库不支持更多功能吗?是否定义了很多功能?

所以我的问题是:最好的配置是什么targetlib以及module是否要使用节点8?


问题答案:

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

  • "module": "commonjs"

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

  • "target": "es2017"

这告诉TypeScript可以使用ES2017中的功能输出JavaScript 语法 。实际上,这意味着它将例如输出async/
await而不是嵌入polyfill(__awaiter)。

  • "lib": ["es2017"]

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

因此,完整的配置为:

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


 类似资料:
  • 问题内容: 因此,另一个问题(如何使用打字稿 导入 模块)的一般答案是: 1)创建blah.d.ts定义文件。 2)使用: 至关重要的是,您需要 在 node_modules中的某个位置加载文件foo.d.ts和foo.js; 并且 NAME foo必须与两者 完全 匹配。现在… 我想回答的问题是如何 编写 一个可以以这种方式导入的打字稿模块? 可以说我有一个像这样的模块: 我想从base.ts中

  • 我正在努力寻找 有什么不同?

  • 本文向大家介绍jquery对dom节点的操作【推荐】,包括了jquery对dom节点的操作【推荐】的使用技巧和注意事项,需要的朋友参考一下 1、JavaScript脚本放在哪里才好?  1.当有些函数 需调用才执行或者有些事件需触发才执行的脚本,我们可以将脚本放在HTML的head部分中,这样可以保证脚本在任何调用之前已经被加载。 2.当页面加载时 需执行的脚本可以放在HTML的body部分,这类

  • Vue.js 支持 typeScript 的推荐配置: // tsconfig.json { "compilerOptions": { // 与 Vue 的浏览器支持保持一致 "target": "es5", // 这可以对 `this` 上的数据属性进行更严格的推断 "strict": true, // 如果使用 webpack 2+ 或 rollup,可以

  • 在控制台中,当运行时,命令现在被本机启用(node版本 但是,当我添加打字稿层时,我总是得到。 我如何解决这个问题? 背景思想:本机使用获取并摆脱和依赖项 < code>tsconfig.json和一般设置:https://github . com/NEX ys-system/server-boilerplate/blob/master/ts config . JSON 另见: Fetch API