mosya<TC> - Tuple型からUnion型に変換する型を作ろうの解説
この記事はmosya<TC>の問題の一つであるTupleToUnion型の解説になります。
問題
タプルの値からユニオン型を生成するTupleToUnion
例えば以下のようなコードを満たすようにStringToUnion型を実装しましょう。
type Arr = ["1", "2", "3"];
type Test = TupleToUnion<Arr>; // expected to be '1' | '2' | '3'
解答例
以下のように配列にnumber
型を指定することで、すべての配列の要素をユニオン型として取得することができます。
type TupleToUnion<T extends any[]> =
T[number];
number
型を使った場合、T[number]
は配列T
のすべての要素のユニオン型を返します。
例えば、['1', '2', '3']
の場合は'1' | '2' | '3'
を返します。
この特徴を使うことで簡単に今回の問題を解くことができます。
Authored by
Godai@steelydylan
Webサービスを作るのが好きなWebエンジニア。子供が産まれたことをきっかけに独立し法人化。サービス開発が大好き。
好きな言語はTypeScript。