tsconfig.json中的“target”属性实际代表什么?

时间:2017-05-19 07:58:17

标签: javascript angular typescript

我一直在使用Typescript开发一个Angular应用程序,我已经意识到我需要在编译(转换)方面更多地关注tsconfig。

目前在源代码中我使用了一些es6功能(例如Array.prototype.find),而TSLint-er正在将这些作为错误。

我正在尝试重新配置我的tsconfig,以便它允许我使用es6功能但转换为es5。在这样做时,我无法理解“目标”属性究竟是什么。 “目标”属性是什么意思?

“目标”是否代表所需的,已转换的输出?或者它是否声明了Typescript语法应该符合什么才能被转换?

1 个答案:

答案 0 :(得分:2)

TypeScript是ES6的超集,因此您实际上是使用ES6版本的JavaScript编写TS代码。但是,在编译时,生成的JS 代码可以在ES5或更早版本中。您需要定义编译器应该转换到哪个JS版本。这可以使用目标选项设置:

{
  "compilerOptions": {
    "target": "es6"
  }
}

您可以阅读有关配置here的更多信息。

但是,它也用于验证间接。此参数定义编译期间使用的libraries。如果您指定target:es5,则它使用的ES5库不包含Array.prototype.find。您可以手动设置要使用的库:

{
  "compilerOptions": {
    "lib": ["es6", "dom"],
  }
}

在这种情况下,即使您将es5指定为target,也不会出现错误。