[TypeScript]Excludeについて、実際に実装して理解する。
指定した型が代入可能であれば、それを除外して新しい型を作成するExclude
というものがある。
今回はこれを自力で実装しながら理解することを目的とする。
Excludeとは
Exclude
とは以下の書式を持つ組み込み型で、指定した型のうち、指定したプロパティを除外して新しい型にしてくれるものです。
今回はこれを実装して理解していきます。
すなわち以下のMyExclude
を実装していきます。
MyExcludeの実装方針
MyExclude
を実装するにあたってはConditional Typesを使用して、TがUから継承可能であれば
never
、そうでない場合はT
を返すだけです。
今回はこれがそのまま答えになっちゃいますね。
これは主に、Union Typesで特定のプロパティを除外するために利用されます。
ちょうどtypeof User
からid
を除外したような使い方です。
まとめ
今回のExclude
の実装を説明しました。
Conditional Types
を使えば簡単でしたね。
分かってしまえば簡単なのですが、Conditional Types
はなかなか癖が強いので、どんどん使用してなれましょう。