{"width":"100%","blog_url":"https://www.tee-talog.com/","provider_name":"Hatena Blog","image_url":null,"title":"Union Types \u3092\u904e\u4e0d\u8db3\u306a\u304f\u6e80\u305f\u3059\u914d\u5217\u304b\u3069\u3046\u304b\u30c1\u30a7\u30c3\u30af\u3059\u308b\u95a2\u6570","blog_title":"\u3072\u3073\u306e\u30ed\u30b0","type":"rich","description":"\u7d50\u8ad6 type Head<T> = T extends [infer U, ...infer _] ? U : never type Tail<T> = T extends [infer _, ...infer U] ? U : never type NecessaryAndSufficientLoop<Union, Arr extends any[]> = Arr extends [] ? [Union] extends [never] ? [] : never : [ Head<Arr> extends Union ? Head<Arr> : never, ...NecessaryAndS\u2026","categories":["TypeScript"],"published":"2024-03-20 19:57:58","height":"190","provider_url":"https://hatena.blog","author_name":"tee-talog","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fwww.tee-talog.com%2Fentry%2F2024%2F03%2F20%2F195758\" title=\"Union Types \u3092\u904e\u4e0d\u8db3\u306a\u304f\u6e80\u305f\u3059\u914d\u5217\u304b\u3069\u3046\u304b\u30c1\u30a7\u30c3\u30af\u3059\u308b\u95a2\u6570 - \u3072\u3073\u306e\u30ed\u30b0\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","version":"1.0","url":"https://www.tee-talog.com/entry/2024/03/20/195758","author_url":"https://blog.hatena.ne.jp/tee-talog/"}