mosya

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。

サイトの模写でプロを目指す
オンライン学習サービスを作りました!

詳しくはこちら
mosya

mosyaはオンラインでWeb制作を自学習できるサービスです。現役エンジニアが作成した豊富なカリキュラムに沿って学習を進めましょう。

© 2023 - mosya. All rights reserved.