タグ

2022年12月8日のブックマーク (1件)

  • Union typesに対してPickやOmitをしたい時

    タイトルの通りです。 普通(?)のオブジェクト型に対して一部のプロパティを取り出したり削除したりしたい時にはPickやOmitを使いますね。 ただPickとOmitはUnion typesに対して分配的には効きません(後述)。 そこでUnion typesに対して分配的にPickやOmitをする方法を考えていきます。 実際に作ろうと思ったときと同じ手順で説明していくので、これからGeneric typesを書いていきたい方の参考にもなればと思います。 結論 // 補助的な型 type KeyOfUnion<T> = T extends T ? keyof T : never; // 分配的なPick type DistributivePick<T, K extends KeyOfUnion<T>> = T extends T ? Pick<T, Extract<K, keyof T>> :

    Union typesに対してPickやOmitをしたい時