Skip to content

Returning a function with "this" typing and rest parameter down-emit incorrect #9682

@kitsonk

Description

@kitsonk

TypeScript Version: 2.0.0 (beta)

Code

function rebase(fn: (base: any, ...args: any[]) => any): (...args: any[]) => any {
    return function(this: any, ...args: any[]) {
        return fn.apply(this, [ this ].concat(args));
    };
}

Expected behavior:

For the index to copy arguments to start at 0:

function rebase(fn) {
    return function () {
        var args = [];
        for (var _i = 0; _i < arguments.length; _i++) {
            args[_i] = arguments[_i];
        }
        return fn.apply(this, [this].concat(args));
    };
}

Actual behavior:

Incorrectly, the index for starting to copy the arguments has been set to 1:

function rebase(fn) {
    return function () {
        var args = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            args[_i - 1] = arguments[_i];
        }
        return fn.apply(this, [this].concat(args));
    };
}

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions