2015-04-01 9 views

Antwort

63

einer Union Typ (string|number)[] Demo Anwendung:

var foo: (string|number)[] = [ 1, "message" ]; 
+0

Nur ein Hinweis, dass dies erfordert TS v1.4 + – Brocco

+1

... und es wird nicht mit komplexen Typen mit unterschiedlichen Eigenschaften arbeiten, wenn Sie auf eine Eigenschaft zugreifen nur für einen der Typen zugreifen möchten. – Nadine

43

Wenn Sie es als ein Tupel sind die Behandlung, dann ist (Abschnitt 3.3.3 des language spec sehen):

var t:[number, string] = [1, "message"] 

oder

interface NumberStringTuple extends Array<string|number>{0:number; 1:string} 
var t:NumberStringTuple = [1, "message"]; 
+5

TIPP: Ich würde lieber 'type NumberStringTuple = [Nummer, String]' – basarat

+0

Vielen Dank! Ich habe total danach gesucht: 'const W3COLORS: [[String, String, Zahl, Nummer]] = [[" aliceblue "," # f0f8ff ", 240, 248, 255], ...];' – CoderPi

+1

Hinweis - beide Typen MÜSSEN im Array sein (funktioniert auch nicht für ein leeres Array). Akzeptierte Antwort ist vielseitiger und die ich persönlich immer benutze, aber es hängt von den Bedürfnissen ab. – druvisc

-5

Verwenden Sie Array<any> und genießen Sie!

+2

mit der Verwendung von Sie verlieren den Zweck der Verwendung von Typoskript –

Verwandte Themen