この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。
BFE.devでのAI解答例 - TypeScript タイプパズル
40. implement UnionToIntersection<T>
解答例:
type UnionToIntersection<U> = (U extends any ? (args: U) => void : never) extends ((args: infer I) => void) ? I : never;
型パラメータ U
に Union Typeを受け取ります。Uを分配条件型である extends any ? (args: U) => void
に適用し、Unionの各要素を引数として関数に渡します。ここで、分配された Union の要素数だけ関数が生成されます。そして、これらの関数の引数はIntersection Typeであり、型引数 I
の推論された型がUnionToIntersectionの出力となります。