types-kit.uniontointersection.md

September 4, 2023 ยท View on GitHub

Home > types-kit > UnionToIntersection

UnionToIntersection type

Convert union type to Intersection type.

Signature:

export type UnionToIntersection<U> = (
  U extends any ? (k: U) => void : never
) extends (k: infer I) => void
  ? I
  : never

Example

// Expect: { a: number } & { b: number }
type Props = UnionToIntersection<{ a: number } | { b: number }>