运行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);