# 18142-all
# 题目描述
Returns true if all elements of the list are equal to the second parameter passed in, false if there are any mismatches.
For example
type Test1 = [1, 1, 1];
type Test2 = [1, 1, 2];
type Todo = All<Test1, 1>; // should be same as true
type Todo2 = All<Test2, 1>; // should be same as false
# 分析
这一题思路很简单,遍历整个元组,将元素类型和目标类型一个个比较,有不同的,就 false,否则一直递归,直到结束返回 true 即可。
# 题解
type All<T extends any[], U> = T extends [infer F, ...infer R]
? F extends U
? All<R, U>
: false
: true;
# 知识点
- 元组遍历套路,递归处理剩余元素