假设我有一个返回列表的函数,该列表包含可变数量的列表,每个列表首先包含可变数量的列表,然后将单个对象作为列表的最后一个成员。
以下是一些输出示例:
output1 = [
[
[1, 2, 3],
{ x: 1, y: 2 }
],
[
[4, 5, 6],
{ x: 3, y: 4 }
],
[
[7, 8, 9],
{ x: 5, y: 6 }
]
];
output2 = [
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
// however many more lists there are
{ x: 1, y: 2 }
],
[
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
// however many more lists there are
{ x: 3, y: 4 }
],
// however many more lists there are
];
列表的内容可以是any
类型,但每个对象都有x
和y
属性,每个属性都有number
类型。
如何创建一个准确且具体地显示此类型的别名?
现在,这就是我创造的:
type Output = [
[
any[], // this is what I need help with
{ x: number, y: number }
][]
]
答案 0 :(得分:0)
您的结构设计不合理,为什么使用数组作为顶部结构而不是对象? 您是否坚持使用该结构(即:它是第三方库的结果,或者是json结果),还是可以更改它?
如果你可以改变它,那么我建议你这样做,因为你将能够有更多的控制权。
type Output = Array<Array<number[] | { x: number, y: number }>>;
let output1: Output = [
[
[1, 2, 3],
{ x: 1, y: 2 }
],
[
[4, 5, 6],
{ x: 3, y: 4 }
],
[
[7, 8, 9],
{ x: 5, y: 6 }
]
];