Angular 15更新后的 typescript 目标警告

qlzsbp2j  于 2023-01-10  发布在  TypeScript
关注(0)|答案(1)|浏览(294)

我把我的Angular 应用程序更新到了Angular 15。它构建得还可以-除非有一些警告,比如:
类型脚本编译器选项“target”和“useDefineForClassFields”分别由Angular CLI设置为“ES 2022”和“false”。
我的tsconfig.json将目标设置为ES6

{
  ...
  "compilerOptions": {
      "target": "ES6",
      ...
  }

}
文档中写道:
在内部,Angular CLI现在始终将TypeScript目标设置为ES 2022,并将useDefineForClassFields设置为false,除非在TypeScript配置中将目标设置为ES 2022或更高版本。
https://github.com/angular/angular-cli/blob/main/CHANGELOG.md
而且我的.browserslistrc看起来一个月都一样,从一开始就没有任何变化:

last 1 Chrome version
last 1 Firefox version
last 2 Edge major versions
last 2 Safari major versions
last 2 iOS major versions
Firefox ESR

因此,如何消除此警告?

5uzkadbs

5uzkadbs1#

我遇到了同样的问题,并通过将"target": "ES2022""useDefineForClassFields": false添加到我的tsconfig中,成功地消除了这个警告。这是否是一个好主意,将不得不等待比我更了解的人的评论。我担心,当2022变为2023时,这将以您现在的方式失败(或者接下来发生的任何事情)。如果Angular无论如何都要覆盖它,如果它能被完全排除(就像我做的那样)肯定会更好。但我可能对这个问题的理解不完全。
以你的情况,你应该可以(或至少尝试)用同样的方法代替ES6(据我所知,这与ES2015相同)。根据您引用的文档,无论您的请求如何,这都是Angular正在做的事情,所以如果您只得到警告并且没有错误,您的代码应该没问题。如果您需要将事情进一步限制到ES6级别,看起来你需要使用你的.broswerslistrc文件来做这件事,这可能已经很好了。
我认为这里的问题是警告没有帮助,至少对像你和我这样的人来说,他们是收到警告而不知道该怎么做的人。而且它后面的Web链接(“要控制ECMA版本和功能,请使用Browerslist配置。有关详细信息,请参阅https://angular.io/guide/build#configuring-browser-compatibility“)似乎对解决警告没有特别的帮助,告诉我们应该做什么,但不是要做什么才能摆脱警告。

相关问题