Ich habe ein Array der Form : [ 1, "message" ].
Wie würde ich das in TypeScript definieren?
Ich habe ein Array der Form : [ 1, "message" ].
Wie würde ich das in TypeScript definieren?
Antworten:
Array mit mehreren Typen in TypeScript definieren
Verwenden Sie eine (string|number)[]Demo vom Typ Union :
const foo: (string|number)[] = [ 1, "message" ];
Ich habe ein Array der Form: [1, "Nachricht"].
Wenn Sie sicher sind, dass es immer nur zwei Elemente [number, string]gibt, können Sie es als Tupel deklarieren:
const foo: [number, string] = [ 1, "message" ];
Wenn Sie es als Tupel behandeln (siehe Abschnitt 3.3.3 der Sprachspezifikation ), dann:
var t:[number, string] = [1, "message"]
oder
interface NumberStringTuple extends Array<string|number>{0:number; 1:string}
var t:NumberStringTuple = [1, "message"];
type NumberStringTuple = [number, string]
const W3COLORS: [[string, string, number, number]] = [ ["aliceblue", "#f0f8ff", 240, 248, 255], ... ];
Mein TS-Flusen beschwerte sich über andere Lösungen, daher war die Lösung, die für mich funktionierte, Folgendes:
item: Array<Type1 | Type2>
Wenn es nur einen Typ gibt, ist es in Ordnung zu verwenden:
item: Type1[]
Ich habe mich für das folgende Format entschieden, um Arrays einzugeben, die Elemente mehrerer Typen enthalten können.
Array<ItemType1 | ItemType2 | ItemType3>
Dies funktioniert gut mit Test- und Typschutzvorrichtungen. https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types
Dieses Format funktioniert nicht gut mit Tests oder Typwächtern:
(ItemType1 | ItemType2 | ItemType3)[]