You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 15兼容Chrome 69:如何polyfill空值合并与可选链运算符?

解决Angular 15兼容Chrome 69的可选链/空值合并运算符问题

首先要明确:可选链运算符(?.)和空值合并运算符(??)属于JavaScript语法特性,而非ES标准API,core-js仅负责polyfill API层面的特性(比如Promise、Array.prototype.flat等),无法直接处理语法层面的兼容问题——这也是你之前导入对应模块提示“未找到”的原因,core-js根本没有这些模块。

不用Babel也能解决,只需通过TypeScript的编译配置转译这些语法,具体操作如下:

  1. 修改TypeScript编译目标
    打开项目根目录的tsconfig.json,在compilerOptions中设置target为Chrome 69支持的ES版本,比如ES2015(Chrome 69对ES2015支持完整):

    {
      "compilerOptions": {
        "target": "ES2015",
        // 其他原有配置保持不变
      }
    }
    

    当TypeScript编译目标低于ES2020时,会自动将?.和??转译为Chrome 69能识别的兼容代码。

  2. 确认浏览器兼容配置
    检查项目的browserslist文件(或package.json中的browserslist字段),确保包含Chrome 69的兼容规则:

    >= Chrome 69
    

    Angular会根据该配置自动调整编译逻辑,确保输出代码适配目标浏览器。

  3. 无需额外添加core-js导入
    你现有的import 'core-js/stable';和import 'regenerator-runtime/runtime';已经覆盖了API层面的polyfill需求,不需要再添加其他core-js相关导入。

完成以上配置后,重新构建项目,Chrome 69中关于这两个运算符的错误即可解决。

内容的提问来源于stack exchange,提问作者Nitin Avula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 21:15:06