2016-10-05 5 views
0

Ich bin neu in Typoskript und ich versuche, eine Methode zu machen, wie so:Typoskript Objekt und Versprechen typehints

emit(identifier: string, parameters: object = {}): Promise { 
    return new Promise(...); 
} 

Ich habe zwei Fragen:

  • Es gibt keine object primitive Auf Typoskript muss ich also any verwenden. Gibt es eine Möglichkeit, einintaint-Objekt (ein Objektliteral, um genauer zu sein) für den zweiten Parameter einzugeben?

  • Wie kann ich den Funktionsrückgabetyp als eine Zusage definieren? Der Compiler beklagt sich über Promise<T> und ich bin nicht wirklich mit Java-ähnlichen Generika vertraut.

Vielen Dank!

Antwort

1

Es gibt keine object, aber Sie können Object verwenden, aber das ist what the docs say:

Der jede Art ist eine leistungsfähige Methode mit bestehenden JavaScript arbeiten, so dass Sie nach und nach Opt-in und Opt-out von Typprüfung während Kompilierung. Sie könnten erwarten, dass Objekt eine ähnliche Rolle spielt, wie es in anderen Sprachen tut. Aber Variablen vom Typ Object können Sie nur ihnen einen beliebigen Wert zuweisen - Sie können nicht beliebige Methoden aufrufen, auf sie, auch diejenigen, die tatsächlich existieren

In Ihrem Fall sollten Sie any werden.

Das Objekt Promise verwendet Generika, um zu definieren, was Sie "vielversprechend" sind. Wenn Sie also ein Versprechen an eine Zahl zurücksenden, wird es Promise<number>.
Wenn der Typ, den das Versprechen zurückgibt, variiert, geben Sie einfach Promise<any> zurück.