我有一个形式为:[1,"message"]的数组。
如何在TypeScript中定义呢?
我有一个形式为:[1,"message"]的数组。
如何在TypeScript中定义呢?
当前回答
我使用这个版本:
exampleArr: Array<{ id: number, msg: string}> = [
{ id: 1, msg: 'message'},
{ id: 2, msg: 'message2'}
]
这和其他建议有点相似,但仍然很容易记住。
其他回答
如果您对获取数字或字符串的数组感兴趣,则可以定义一个类型,该类型将接受数字或字符串的数组
type Tuple = Array<number | string>
const example: Tuple = [1, "message"]
const example2: Tuple = ["message", 1]
如果你期望一个特定顺序的数组(即数字和字符串)
type Tuple = [number, string]
const example: Tuple = [1, "message"]
const example2: Tuple = ["messsage", 1] // Type 'string' is not assignable to type 'number'.
我的TS lint抱怨其他解决方案,所以解决方案是为我工作:
item: Array<Type1 | Type2>
如果只有一种类型,可以使用:
item: Type1[]
我使用这个版本:
exampleArr: Array<{ id: number, msg: string}> = [
{ id: 1, msg: 'message'},
{ id: 2, msg: 'message2'}
]
这和其他建议有点相似,但仍然很容易记住。
const myarray:(TypeA | TypeB)[];
或者更好地避免在多个地方更改,以防您需要添加另一个类型,创建类型
type MyMixedType = TypeA | TypeB;
const myarray: MyMixedType[];
我已经确定了以下格式,用于输入可以具有多种类型项的数组。
阵列望远镜< ItemType1 | ItemType2 | ItemType3 >
这可以很好地用于测试和类型保护。https://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types
这种格式不适用于测试或类型保护:
(ItemType1 | ItemType2 | ItemType3) []