Skip to content

a custom class extends to Object, invoke a member function will produce an error!!! #14869

@rdkmaster

Description

@rdkmaster

TypeScript Version: 2.2.1 release

Code

class Base extends Object /* or extends Array */ {
}

class Greeter extends Base {
    greeting: string;
    constructor(message: string) {
        super();
        this.greeting = message;

        this.greet(); // <-- error here
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}

let greeter = new Greeter("world");

let button = document.createElement('button');
button.textContent = "Say Hello";
button.onclick = function() {
    alert(greeter.greet());
}

document.body.appendChild(button);

Expected behavior:
no error while running

Actual behavior:
browser console print this error:

ncaught TypeError: _this.greet is not a function
    at new Greeter (<anonymous>:23:15)
    at <anonymous>:31:15
    at HTMLButtonElement.excuteButton.onclick (http://www.typescriptlang.org/play/playground.js:242)

Metadata

Metadata

Assignees

No one assigned

    Labels

    DuplicateAn existing issue was already created

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions