問題一覧に戻る
上級高度な型
問題60: Variadic Tuple Types

可変長タプル型を使って、任意の長さのタプルを扱う方法を学びます。スプレッド構文を型レベルで使用することで、タプルの連結や分解を型安全に行えます。関数の引数や戻り値の型をより柔軟に定義できる高度な機能です。

// 可変長タプル型
type Concat<T extends unknown[], U extends unknown[]> = [T, U];

type Result = Concat<[1, 2], [3, 4]>;

// タプル内でのスプレッド
function merge<T extends unknown[], U extends unknown[]>(
arr1: T,
arr2: U
): [T, U] {
return [...arr1, ...arr2];
}