我正试图解决使用闭包编译器缩小typescript应用程序时出现的警告,使用我的tsconfig.json
我当前的配置:

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

但是,对于使用关键字deletefinallyabstract,我得到了以下警告:
警告-在旧版本的javascript中,关键字和保留字不允许作为未引用的属性名。如果您的目标是较新版本的javascript,请设置相应的language_-in选项。
我确实看到了答案,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编译器使用,在其中推送闭包编译器选项是行不通的,闭包编译器无论如何也不知道如何处理tsconfig.json。对闭包编译器的输入应该是JavaScript(ES3、ES5或ES6),而不是Type Script,因此需要建立构建过程来将您的Type Script源编译成JavaScript,然后将JavaScript移植到闭包编译器。在您链接到闭包编译器的问题中,调用闭包编译器时会在命令行上传递选项。

关于javascript - 如何在tsconfig.json中设置'language_in'选项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35150736/

10-11 22:28