使用rest参数代替参数-Angular ES6

时间:2018-10-17 14:23:06

标签: javascript angular ecmascript-6

我正在尝试使用arrow方法在嵌套函数内访问组件。当我使用arrow方法时,出现编译器错误“错误TS2496:ES3和ES5中的arrow函数无法引用'arguments'对象。请考虑使用标准函数表达式。”

我了解了一下,并试图将其转换为其余参数,但不确定如何使它工作。

在休息参数之前:

    ((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。收到错误消息“无法读取未定义的未定义属性”

请咨询。

1 个答案:

答案 0 :(得分:0)

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