Aufruf Konstruktor auf Typoskript-Klasse, ohne neue

In JavaScript, kann ich definieren Sie einen Konstruktor-Funktion, die aufgerufen werden können, mit oder ohne new:

function MyClass(val) {
    if (!(this instanceof MyClass)) {
        return new MyClass(val);
    }

    this.val = val;
}

Kann ich dann konstruieren MyClass Objekte mithilfe der folgenden Anweisungen:

var a = new MyClass(5);
var b = MyClass(5);

Ich habe versucht, ein ähnliches Ergebnis erzielen mit dem Typoskript-Klasse unten:

class MyClass {
    val: number;

    constructor(val: number) {
        if (!(this instanceof MyClass)) {
            return new MyClass(val);
        }

        this.val = val;
    }
}

Aber anrufen MyClass(5) gibt mir die Fehlermeldung Value of type 'typeof MyClass' is not callable. Did you mean to include 'new'?

Gibt es eine Möglichkeit, ich kann diese Muster-Arbeit in TypeScript?

InformationsquelleAutor dan | 2015-09-27
Schreibe einen Kommentar