0

t.exports = function(t, e={}) {
            if (e = Object.assign({}, r, e),
            !t || "string" != typeof t)
                return t;
            let o = t.trim();
            if (void 0 !== e.skipLike && e.skipLike.test(o))
                return t;
            if (e.hex && n.test(o))
                return Number.parseInt(o, 16);
            {
                const n = i.exec(o);
                if (n) {
                    const i = n[2]
                      , r = n[3];
                    return 1 === i.length && "." === r[0] ? Number(t) : !e.leadingZeros && i.length > 0 ? t : Number(o)
                }
                return t
            }
        }

上面的代码是在生产模式下构建 angular4 应用程序后生成的,在 main.js 文件中找到。我在我的应用程序中使用剑道角度。当我在 IE11 浏览器中打开应用程序时,它会在控制台中引发错误

SCRIPT1006: 应为 ')'

并且不加载应用程序。我试图找出哪个模块或剑道文件包含此代码或需要更新哪个版本的剑道角度模块。

根本原因是

if (e.hex && n.test(o))
                    return Number.parseInt(o, 16);
                {
                    const n = i.exec(o);
                    if (n) {
                        const i = n[2]
                          , r = n[3];
                        return 1 === i.length && "." === r[0] ? Number(t) : !e.leadingZeros && i.length > 0 ? t : Number(o)
                    }
                    return t
                }

这部分代码在 if 条件之后和 if 块之前有一个 return 语句。这在 Chrome 和 Edge 中被忽略,但 IE11 无法理解并抛出上述错误。谁能帮我解决这个问题。

提前致谢

4

1 回答 1

0

根据您的描述,我认为问题主要是由于 IE 不支持 ES6 语法,例如Default parameters。在您提供的代码中,它是这样的:

function(t, e={}) {
      ...
        }

你能做的就是翻译这些代码。尝试使用Babel,它应该对您有所帮助。

于 2021-09-22T04:10:42.660 回答