我把我的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
因此,如何消除此警告?
1条答案
按热度按时间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“)似乎对解决警告没有特别的帮助,告诉我们应该做什么,但不是要做什么才能摆脱警告。