Javascript Sencha Cmd,C2001闭包编译器错误:扩展本机类:数组

Javascript Sencha Cmd,C2001闭包编译器错误:扩展本机类:数组,javascript,extjs,sencha-cmd,Javascript,Extjs,Sencha Cmd,运行Sencha Cmd v6.5.3.6时,我收到以下错误消息: [ERR]C2001:闭包编译器错误(此代码无法从ES6转换。扩展本机类:数组)--压缩输入:111263 此错误由以下代码引起: 类链扩展数组{ } 类声明中的方法仍会发生错误 有没有办法让这段代码由senchacmd编译 更新: 为了解决这个问题,我将代码更改为: 函数链(){} Chains.prototype=新数组 Chains.prototype.anyMethod=函数(){} 我认为ExtJS目前还不支持这种语法

运行Sencha Cmd v6.5.3.6时,我收到以下错误消息:

[ERR]C2001:闭包编译器错误(此代码无法从ES6转换。扩展本机类:数组)--压缩输入:111263

此错误由以下代码引起:

类链扩展数组{
}

类声明中的方法仍会发生错误

有没有办法让这段代码由senchacmd编译

更新: 为了解决这个问题,我将代码更改为:

函数链(){}
Chains.prototype=新数组
Chains.prototype.anyMethod=函数(){}


我认为ExtJS目前还不支持这种语法。目前,您可能需要使用它们的语法:

Ext.define('Chains', {
    extend: 'Array'
});
然后在代码中可以这样调用它:

var chns = Ext.create('Chains');
chns.push('a');
console.log(chns);

您正在使用ES6的一项功能

Sencha Cmd默认情况下会将您的代码转换为ES6之前的代码,因为IE11支持尚未放弃

您可以从Sencha Cmd 6.5.0开始禁用代码传输,如下所述:

有些情况下,您不需要所有的传输。也许您的目标是Electron,或者您只支持具有所有这些功能的现代浏览器。您可以禁用transpiler,并且仍然对本机ES6代码使用Sencha Cmd代码压缩器。只需调整app.json文件,就可以告别transpiler及其polyfills:

"output": {
    "js": {
        "version": "ES6"
    }
}

它现在编译没有错误,但链不再是数组。在Chains对象上调用“push”方法是不可能的,这是我所需要的行为。我的错是,我使用的是“extends”而不是“extend”。现在很好用。谢谢。Sencha cmd现在显示此错误消息:“[ERR]无法解析文件链接的依赖项数组。Chains[ERR]依赖项的未知定义:Array”因此我将使用一个数组扩展,包括原型,并使用一个新的类名,如下所述:但不是涉及ES6语言版本的解决方案,否:class a扩展了b{ }