案例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
我想检查打字稿中的数组长度!
搜索时找不到。帮我。谢谢。
答案 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中是否可行:/