Yanıtlar:
TypeScript'te çoklu türlerle dizi tanımlama
Sendika türü bir (string|number)[]demo kullanın :
const foo: (string|number)[] = [ 1, "message" ];
Formun bir dizi var: [1, "message"].
Her zaman yalnızca iki öğe olduğundan eminseniz, [number, string]bunu bir demet olarak bildirebilirsiniz:
const foo: [number, string] = [ 1, "message" ];
Bir demet gibi davranıyorsanız ( dil spesifikasyonunun 3.3.3 bölümüne bakın ), o zaman:
var t:[number, string] = [1, "message"]
veya
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], ... ];
TS tüysüzüm diğer çözümlerden şikayet ediyordu, bu yüzden benim için çalışan çözüm:
item: Array<Type1 | Type2>
sadece bir tür varsa, kullanmak iyidir:
item: Type1[]
Ben birden çok türde öğeleri olabilir dizileri yazmak için aşağıdaki biçime yerleşti.
Array<ItemType1 | ItemType2 | ItemType3>
Bu test ve tip korumalarla iyi çalışır. https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types
Bu biçim, test veya tür korumalarıyla iyi çalışmaz:
(ItemType1 | ItemType2 | ItemType3)[]