infer 关键字
其实就是一个占位符,可以利用它来实现提取数组元素和递归
比如我想把下面的 type 递归
1 | type Arr = ["a", "b", "c"] |
首先需要利用 infer 取到数组中的元素,这里假设我们要取字符串 “a”
1 | // 如果泛型是数组类型,那么就使用 infer 取第一个 |
以上步骤我们就可以成功取到数组元素,后面只需重新递归拼接即可
1 | type Rever<T extends any[]> = T extends [infer First, ...infer rest] ? [...Rever<rest>, First] : T |
就是这么简单。🤗