首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angular 11默认TypeScript配置:目标为'es2015',库为'es2018',但没有polyfill?

Angular 11默认TypeScript配置:目标为'es2015',库为'es2018',但没有polyfill?
EN

Stack Overflow用户
提问于 2020-12-11 19:21:22
回答 1查看 1.2K关注 0票数 0

引导一个新的Angular 11应用程序将生成以下tsconfig.json文件:

代码语言:javascript
运行
复制
{
  "compileOnSave": false,
  "compilerOptions": {
    ... // Options not relevant for this question.
    "target": "es2015",
    "module": "es2020",
    "lib": [
      "es2018",
      "dom"
    ]
  }

它还会生成仅启用/未注释zone.jspolyfills.ts文件。

我的问题是:既然我们编译为es2015,但使用es2018类型定义(例如async iterablespromise.finally等),如果没有提供相关的polyfills,这怎么可能是安全的?为什么Angular 11CLI不使用libes2015

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-11 19:37:34

角度多边形填充将自动生成为polyfills-es5.js。此文件中包含angular内部工作所需的多边形填充。如果您的代码使用的特性不是angular使用的特性的一部分,那么您需要将其添加到polyfills.ts中。

因为目标是es2015,typescript会自动转换一些es2018特性,比如async

因为es2015es2018的一个子集(我相信),所以它会自动包含在lib中。

旁注:如果你使用es2018作为target,angular会在编译时给出警告,因为zone.js不能捕获原生async/await。如果您在任何地方都使用OnPush,这不是问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65250383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档