Sencha Cmd, ошибка компилятора закрытия C2001: расширение собственного класса: массив - PullRequest
0 голосов
/ 25 мая 2018

При запуске Sencha Cmd v6.5.3.6 я получаю следующее сообщение об ошибке:

[ERR] C2001: ошибка компиляции закрытия (Этот код не может быть преобразован из ES6. Расширение собственного класса:Array) - сжатие-ввод: 111263

Ошибка вызвана этим кодом:

класс Chains extends Array {
}

Ошибка по-прежнему возникает с методами внутри объявления класса.

Есть ли способ сделать этот код скомпилированным Sencha Cmd?

ОБНОВЛЕНО: Чтобы решить проблемуЯ изменяю код на:

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

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Вы используете функцию ES6 , которая не может быть перенесена в код до ES6 .

Sencha Cmd по умолчанию переносит ваш код в код до ES6, потому что поддержка IE11 еще не былабыл отброшен.

Вы можете отключить передачу кода, начиная с Sencha Cmd 6.5.0, как описано в официальных документах :

В некоторых случаях вы выиграли 'Тебе не нужно все это.Возможно, вы ориентируетесь на Electron или поддерживаете только современные браузеры, которые имеют все эти функции.Вы можете отключить транспортер и по-прежнему использовать компрессор кода Sencha Cmd против вашего собственного кода ES6.Просто подправьте файл app.json и попрощайтесь с транспилером и его полифиллами:

"output": {
    "js": {
        "version": "ES6"
    }
}
0 голосов
/ 25 мая 2018

Я не думаю, что ExtJS поддерживает этот синтаксис на данный момент.В настоящее время вам, возможно, придется использовать их синтаксис:

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

Тогда в вашем коде вы можете назвать его так:

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