如何在Typescript中声明自定义类型的N个元素的数组



我创建了自己的类型tuple,我想用tuple类型的元素制作一个长度为10的数组。我如何(可能(使用特定的Array语法或任何其他语法来做到这一点?

type tuple =  [number, number]
var numbers: Array<tuple> = []

如果你对tuple的默认值满意,只需添加一个单独的答案,这样的方法就可以了:

type tuple = [number, number]
type TupleArray<tuple, TupleLen extends number> = [tuple, ...tuple[]] & { length: TupleLen }
let numbers: TupleArray<tuple, 10> = Array(10).fill([0, 0]) as TupleArray<tuple, 10>;

使用这种方法,您需要特别键入TupleArray以具有特定的长度,因此添加了一个警告,即空数组或长度大于或小于10的任何数组都会引发错误。这也是为什么您需要用10个tuples填充阵列的原因。

让它成为元组的元组?或者具体地说,是一个类型为tuple的元组。

type tuple =  [number, number];
const numbers: [tuple, tuple, tuple, tuple, ...] = [...];

最新更新