# 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;

# 知识点

  1. 元组遍历套路,递归处理剩余元素
Last Updated: 2023/5/16 06:00:28