如何在 tsconfig.json 中设置 'language_in' 选项?

How do I set 'language_in' option in tsconfig.json?

我正在尝试使用我的 tsconfig.json.

解决在使用闭包编译器缩小我的 TypeScript 应用程序时收到的警告

我目前的配置:

{
  "compilerOptions": {
    "target": "es5",
    "module": "system",
    "noImplicitAny": false,
    "removeComments": true,
    "preserveConstEnums": true,
    "outFile": "app.js",
    "sourceMap": true
  },
  "files": [ ... ]
}

但是我收到以下警告,因为使用了关键字 deletefinallyabstract:

WARNING - Keywords and reserved words are not allowed as unquoted property names in older versions of JavaScript. If you are targeting newer versions of JavaScript, set the appropriate language_in option.

我确实看到了答案,How can I set the language_in option for the Closure compiler? 建议使用 --compiler_flags="--language_in=ECMASCRIPT5" 来解决,但我认为 "target": "es5" 在我的 tsconfig.json?

所以尽管设置了 target,但我看不到其他配置选项影响 language_in 具有 read the tsconfig.json spec,我不确定如何解决。

显然,我可以引用 属性 名称,或者忽略警告,但我希望解决警告,因为我不针对较旧的浏览器。

tsconfig.json 被 TypeScript 编译器使用,将 Closure 编译器选项推到那里是行不通的,而且 Closure 编译器也不知道如何处理 tsconfig.json。 Closure 编译器的输入应该是 JavaScript(ES3、ES5 或 ES6),而不是 TypeScript,因此您需要设置构建过程以将 TypeScript 源代码编译为 JavaScript,然后将JavaScript 给 Closure 编译器。在您链接的问题中,Closure 编译器的选项在调用它时在命令行上传递。

我错误地认为 TypeScript 编译器使用 Closure 编译器在编译后缩小生成的 JavaScript 文件,因为这些错误被记录在 WebStorm IDE 作为输出打字稿编译器。所以 WebStorm 让我走错了路。

但是错误消息来自一个单独的 Closure 编译器文件观察器,它在 TypeScript 编译器 运行 之后会有 运行。

因此,更改 tsconfig.json 选项也确实影响了输出,让我认为该过程已连接。

找到文件观察器后,我可以使用编译器标志修改其中的选项,在问题中注明