学习TypeScript28(infer 递归)

有这么一个类型

type Arr = [1, 2, 3, 4]

希望通过一个 ts 工具变成

type Arr = [4,3,2,1]

完整代码

type Arr = [1, 2, 3, 4]

type ReveArr<T extends any[]> = T extends [infer First, ...infer rest] ? [...ReveArr<rest>, First] : T

type Res = ReveArr<Arr>

 具体思路 首先使用泛型约束 约束只能传入数组类型的东西  然后从数组中提取第一个,放入新数组的末尾,反复此操作,形成递归 满足结束条件返回该类型

猜你喜欢

转载自blog.csdn.net/qq1195566313/article/details/126449668