Используйте остальные параметры вместо аргументов - Angular ES6 - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь получить доступ к компоненту this внутри вложенной функции, используя метод стрелки.Когда я использую метод стрелки, я получаю ошибку компилятора "ошибка TS2496: на объект" arguments "нельзя ссылаться в функции стрелки в ES3 и ES5. Рассмотрите возможность использования стандартного выражения функции."

Я читал оон и пытался преобразовать его в параметры отдыха, но не знал, как заставить его работать.

До параметров отдыха:

    ((H => {
        H.wrap((H as any).seriesTypes.sunburst.prototype, 'drillUp', (proceed) => {

            proceed.apply(this, Array.prototype.slice.call(arguments, 1));

            console.log('drillup');
                 this.drillUpClick();

        });
    }))(Highcharts);

После параметров отдыха:

    ((H => {
        H.wrap((H as any).seriesTypes.sunburst.prototype, 'drillUp', (proceed, ...args) => {

            proceed.apply(this, Array.prototype.slice.call(args, 1));

            console.log('drillup');
            this.drillUpClick();

        });
    }))(Highcharts);

Я не могу запустить console.log.Появляется ошибка «Невозможно прочитать свойство undefined of undefined»

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 17 октября 2018

args уже ваши остальные аргументы.Так что не разрезайте массив:

((H => {
    H.wrap((H as any).seriesTypes.sunburst.prototype, 'drillUp', (proceed, ...args) => {
        if(args && args.length > 0) {
            proceed.apply(this, args);
        }
        console.log('drillup');
        this.drillUpClick();

    });
}))(Highcharts);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...