Typescript 1.4 führte Union-Typen ein Die Antwort lautet nun ja, du kannst .
%Vor%Wenn Sie einen anderen als den angegebenen Typ verwenden, wird ein Fehler bei der Kompilierung ausgelöst.
Wenn Sie ein Array mit mehreren spezifischen Typen wünschen, können Sie auch Union-Typen verwenden:
%Vor%Beachten Sie, dass sich dies von dem unterscheidet, was OP angefordert hat. Diese beiden Beispiele haben unterschiedliche Bedeutungen.
Das scheint eine etwas alte Frage zu sein, aber trotzdem bin ich darauf gestoßen und habe diese andere Antwort verpasst, die ich mitbringe.
Aus TypeScript 1.4 scheint es möglich, mehrere mögliche Typen für einen Funktionsparameter wie folgt zu deklarieren:
%Vor%Dies liegt an dem neuen TypeScript-Konzept von "union-types".
Sie können mehr hier sehen.
Nein. TypeScript unterstützt nur eine einzelne optionale TypeAnnotation in einem Parameter, z. x: string
, number oder any, so dass Sie keine erlaubten Typen angeben können.
TypeScript unterstützt jedoch Funktionsüberladungen (Dokumentation p51):
Funktionsüberladungen ermöglichen eine genauere Spezifikation der von einer Funktion unterstützten Aufrufmuster, als dies mit einer einzigen Signatur möglich ist. [...]
%Vor%
Otherwssie Sie können typeof
type checks verwenden, aber dies wirkt sich auf den Typ ascpect des Type Script ein wenig aus.
Da Strings, Booleans und Zahlen primitive Typen sind, glaube ich nicht, dass es einen einfachen Weg gibt. Wenn Sie eine Reihe verschiedener Objekttypen verwenden würden, könnten Sie vielleicht eine Superklasse erstellen und diese Superklasse dann in der Oberfläche Ihrer Methode angeben. Auf der anderen Seite könnten Sie auch das Überladen von Methoden verwenden, um verschiedene Implementierungen für Arrays aus Strings, booleschen Werten und Ganzzahlen anzugeben.
Tags und Links javascript typescript