そういうタイプがある
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>
具体的な考え方は、最初に一般的な制約を使用して、配列型のものだけを渡すことができるように制約し、次に配列から最初のものを抽出し、それを新しい配列の最後に置き、この操作を繰り返して再帰を形成することです。終了条件を満たし、型を返します