[TypeScript]Conditional Typesを理解する
Conditional Types
はTypeScript2.8
から導入された機能です。
これを使用することで、型を条件で選択することが可能です。
早速見ていきましょう
Conditional Typesの例
Conditional Typesでは以下の通り、三項演算子および継承を利用して、型定義を判定します。
以下の例では、U
にtrue
を指定すると、string
、それ以外だとnumber
となります。
Conditional Typesの基本形
先程の例で、三項演算子、継承を含めた形で説明しました。
このため、基本的な形は以下になります。
C
を子供P
を親T1
を継承可能な場合の型T2
を継承不可能な場合の型
としています。
Conditional Typesの応用例
Conditional Types
はtypescript
の様々な箇所で応用されています。
例えば、組み込み型のExclude
は以下の通り、定義されています。
これは、T
に指定した型がU
から継承可能な場合はnever
、そうでない場合はT
を返す型になります。
すなわち、継承可能だった場合はそれを除外するみたいなことが可能です。
まとめ
Conditional Types
は最初とっつきくいと思いますが、基本形を理解して使えば、必ず理解できるようになります。
複雑な定義でもまずはこの基本形を覚えて、少しずつ理解していきましょう。