Answers:
在TypeScript中定义具有多种类型的数组
使用联合类型(string|number)[]演示:
const foo: (string|number)[] = [ 1, "message" ];
我有以下形式的数组:[1,“ message”]。
如果确定始终只有两个元素,[number, string]则可以将其声明为元组:
const foo: [number, string] = [ 1, "message" ];
如果您将其视为元组(请参阅语言规范的 3.3.3节),则:
var t:[number, string] = [1, "message"]
要么
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皮棉抱怨其他解决方案,因此对我有用的解决方案是:
item: Array<Type1 | Type2>
如果只有一种类型,可以使用:
item: Type1[]
我已经决定使用以下格式来键入可以具有多种类型项的数组。
Array<ItemType1 | ItemType2 | ItemType3>
这对于测试和类型防护很有效。https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types
此格式不适用于测试或类型防护:
(ItemType1 | ItemType2 | ItemType3)[]