【问题标题】:Typescript target warnings after Angular 15 updateAngular 15 更新后的 Typescript 目标警告
【发布时间】:2023-01-08 21:29:20
【问题描述】:

我将我的 Angular 应用程序更新为 Angular 15。 它构建正常 - 除非有一些警告,如:

TypeScript 编译器选项“target”和“useDefineForClassFields”是 Angular CLI 分别设置为“ES2022”和“false”。

我的tsconfig.json 将目标设置为ES6

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

}

文件说:

在 Angular CLI 内部,现在始终将 TypeScript 目标设置为 ES2022 和 useDefineForClassFields 为 false,除非设置了目标 在 TypeScript 配置中为 ES2022 或更高版本。

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

因此,我怎样才能摆脱这个警告?

【问题讨论】:

    标签: angular typescript angular14 angular15


    【解决方案1】:

    我遇到了同样的问题,并通过将 "target": "ES2022" 添加到我的 tsconfig 成功地消除了这个警告。这是否是个好主意,必须等待比我更有见识的人发表评论。我担心当 2022 变成 2023 (或接下来发生的任何事情)时,这会像您现在的方式一样失败。如果 Angular 无论如何都要覆盖它,那么如果它可以完全被排除在外(就像我所做的那样)当然会更好。但我可能对这个问题的理解不完整。

    在你的情况下,你应该能够做(或至少尝试)相同的事情来代替 ES6(我理解它与 ES2015 相同)。根据您引用的文档,这就是 Angular 正在做的事情,无论您的请求如何,所以如果您只收到警告并且没有错误,您的代码应该没问题。如果您需要将事情进一步限制到 ES6 级别,您似乎需要使用您的 .broswerslistrc 文件来执行此操作,这可能已经很好了。

    我认为这里的问题是警告没有帮助,至少对像你我这样的人来说是这样,他们收到警告却不知道该怎么办。它后面的网络链接(“要控制 ECMA 版本和功能,请使用 Browerslist 配置。有关更多信息,请参阅https://angular.io/guide/build#configuring-browser-compatibility")似乎对解决警告没有特别帮助,它告诉我们应该做什么,但没有告诉我们应该做什么做摆脱警告。

    【讨论】:

      猜你喜欢
      • 2021-09-17
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多