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



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

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

该错误是由以下代码引起的:

类链扩展数组 {
}

类声明中的方法仍然会出现错误。

有没有办法让这个代码由Sencha Cmd编译?

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

函数 Chains(( { };
Chains.prototype = new Array;
Chains.prototype.anyMethod = function (( { }

您正在使用 ES6 中无法转换为 ES6 之前代码的功能。

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

您可以从 Sencha Cmd 6.5.0 开始禁用代码转换,如官方文档中所述:

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

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

我认为ExtJS目前不支持该语法。目前,您可能必须使用它们的语法:

Ext.define('Chains', {
extend: 'Array'
});

然后在您的代码中,您可以像这样调用它:

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

最新更新