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

Ric*_*ich 5 javascript typescript angular

我一直在使用 Typescript 开发 Angular 应用程序,并且我开始意识到我需要在编译(转译)方面更加关注 tsconfig。

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

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

“目标”是否代表所需的转译输出?或者它是否声明了 Typescript 语法应符合什么才能进行转译?

Max*_*kyi 4

TypeScript 是 ES6 的超集,因此您\xe2\x80\x99 本质上是使用 ES6 版本的 JavaScript 编写 TS 代码。但是,编译时,生成的 JS代码可以是 ES5 或更早版本。您需要定义编译器应转换为哪个版本的 JS。可以使用 target 选项来设置:

\n\n
{\n  "compilerOptions": {\n    "target": "es6"\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以在此处阅读有关配置的更多信息。

\n\n

然而,它也可以间接用于验证。该参数定义编译期间使用哪些库。如果您指定target:es5,它将使用不包含Array.prototype.find. 您可以手动设置要使用的库:

\n\n
{\n  "compilerOptions": {\n    "lib": ["es6", "dom"],\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

在这种情况下,即使您指定es5target.

\n