如何在打字稿中按特定顺序限制数组的类型

how to limit array's type in specific order in typescript

如何在打字稿中以特定顺序限制数组的类型而不是定义范例。

这意味着,在 ts 中,我们只需声明一个数组定义,如:

const arr:Array<any> = []

我想在定义数组中得到一个特定的顺序,比如:

const arr = ['string', 0, ...];

value在位置0只能是字符串类型,在位置1只能是数字类型...

谢谢

可以通过交集类型来完成:

type OrderedArray<T> = Array<T> & {
    0?: string;
    1?: number;
}

const arr: OrderedArray<any> = ['string', 0, ...];

如果您想将大小限制为 2 个元素,您可以使用 tuple

const myTuple: [string, number] = ['test', 3]

或将元组类型定义提取为类型

type myTupleType = [string, number]
const myTuple2: myTupleType = ['test', 3]