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

是否有@babel/plugin可将String.prototype.at转译为兼容ES5的JS代码?

没有专门用于转换String.prototype.at的独立@babel/plugin,该方法属于ES2022新增的原型API,不属于语法特性,因此需要通过polyfill的方式实现低版本浏览器兼容,而非语法转换。

以下是两种可行的实现方案:

  • 方案一:通过@babel/preset-env自动注入polyfill
    只要你的项目已安装core-js@3.16及以上版本(core-js从3.16版本开始加入了String.prototype.at的polyfill支持),修改babel配置中的@babel/preset-env参数即可:

    {
      "presets": [
        ["@babel/preset-env", {
          "targets": "你的项目兼容浏览器目标",
          "useBuiltIns": "usage",
          "corejs": 3.20
        }]
      ]
    }
    

    配置完成后babel会自动检测代码中对at方法的调用,按需注入对应的polyfill代码,不需要你手动修改业务代码。

  • 方案二:手动添加轻量polyfill
    如果你不想引入core-js的相关依赖,也可以直接在项目入口文件最顶部添加如下代码,手动补全at方法实现:

    if (!String.prototype.at) {
      String.prototype.at = function (index) {
        const len = this.length;
        const relativeIndex = Number(index) || 0;
        const pos = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;
        return pos < 0 || pos >= len ? undefined : this[pos];
      };
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:15:04