如何在打字稿中检查数组长度

时间:2019-12-01 06:58:13

标签: arrays typescript

案例1

 type ArrayEqualLength<T,?> = [T]
 const a: ArrayEqualLength<number,1> = [1,1] // x
 const a: ArrayEqualLength<number,1> = [1] // o
 const a: ArrayEqualLength<number,2> = [1,1] // o

大于2的情况

 type ArrayGreaterThanLength<T,?> = [T]
 const a: ArrayGreaterThanLength<number,2> = [1,1] // x
 const a: ArrayGreaterThanLength<number,2> = [1] // x
 const a: ArrayGreaterThanLength<number,2> = [1,1,1] // o

我想检查打字稿中的数组长度!

搜索时找不到。帮我。谢谢。

1 个答案:

答案 0 :(得分:2)

这可能对您的第一种情况有帮助:https://stackoverflow.com/a/52490977/12414867

例如:

type TupleEq<TItem, TLength extends number> = [TItem, ...TItem[]] & { length: TLength };
const a: TupleEq<number, 4> = [1, 2, 3, 4];

对于第二种情况,我不确定在TS中是否可行:/