Wie funktionieren Typoskript-Schnittstellen mit Konstruktsignaturen?

Ich bin mit einigen Schwierigkeiten, wie definieren von Konstruktoren in interfaces funktionieren. Ich könnte Total Missverständnis etwas. Aber ich habe nach Antworten gesucht für eine gute Weile, und ich kann nicht finden, alles, was damit in Zusammenhang stehen.

Wie kann ich die folgende Schnittstelle implementieren in einem Typoskript Klasse:

interface MyInterface {
    new ( ... ) : MyInterface;
}

Anders Hejlsberg schafft eine Schnittstelle, die etwas ähnliches in diesem video (etwa 14 Minuten). Aber für das Leben von mir ich kann nicht implementieren diese in eine Klasse.

Wahrscheinlich bin ich Missverständnis, etwas, was ich nicht erhalte?

EDIT:

Klären. Mit "neue ( ... )" ich meinte "nichts". Mein problem ist, dass ich nicht bekommen kann, selbst die basic-version dieser Arbeit:

interface MyInterface {
    new () : MyInterface;
}

class test implements MyInterface {
    constructor () { }
}

Dies ist nicht das kompilieren bei mir bekomme ich "Klasse" test "deklariert-interface MyInterface' aber nicht umsetzen: der Typ 'MyInterface' erfordert ein Konstrukt Signatur, aber Geben Sie "test" fehlt ein", wenn Sie versuchen, um es zu kompilieren.

EDIT:

Also auf der Suche nach ein bisschen mehr gegeben, das feedback.

interface MyInterface {
    new () : MyInterface;
}

class test implements MyInterface {
    constructor () => test { return this; }
}

Ist nicht gültig Typoskript und diese das problem nicht lösen. Sie können nicht definieren, der return-Typ des Konstruktors. Es wird wieder "testen". Die Signatur der folgenden Schritte aus:
class test {
Konstruktor () { }
}
Scheint die "neue () => test" (erhalten, indem man die Maus über die "Klasse" der online-editor nur mit diesem code eingefügt). Und das ist, was wir wollen und was ich dachte, es wäre.

Kann mir jemand ein Beispiel geben, dies oder etwas ähnliches, wo es eigentlich kompilieren?

BEARBEITEN (wieder...):

So, ich könnte kommen mit einer Idee, warum es möglich ist, zu definieren, diese in eine Schnittstelle, aber keine Möglichkeit zur Umsetzung in ein Typoskript Klasse.Die folgenden Werke:

var MyClass = (function () {
    function MyClass() { }
    return MyClass;
})();

interface MyInterface {
    new () : MyInterface;
}

var testFunction = (foo: MyInterface) : void =>  { }
var bar = new MyClass();
testFunction(bar);

So ist dies nur ein feature von Typoskript, können Sie die javascript-Schnittstelle? Oder ist es möglich, Sie zu implementieren, in Maschinenschrift ohne Implementierung der Klasse mit javascript?

InformationsquelleAutor der Frage Nypan | 2012-11-15

Schreibe einen Kommentar