我一直在使用Typescript开发一个Angular应用程序,我已经意识到我需要在编译(转换)方面更多地关注tsconfig。
目前在源代码中我使用了一些es6功能(例如Array.prototype.find),而TSLint-er正在将这些作为错误。
我正在尝试重新配置我的tsconfig,以便它允许我使用es6功能但转换为es5。在这样做时,我无法理解“目标”属性究竟是什么。 “目标”属性是什么意思?
“目标”是否代表所需的,已转换的输出?或者它是否声明了Typescript语法应该符合什么才能被转换?
答案 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
,也不会出现错误。