Skip to content
#238 union-to-intersection · par 5

    ↑↓ move · ⏎ open · esc close

    No. 238 · August 21, 2026 · Brutal

    UnionToIntersection

    Implement `UnionToIntersection<U>` so `A | B` becomes `A & B`. There is no operator for this — the answer exploits how the compiler infers from function parameters.

    01

    Puzzle

    Par 5

    Puzzle

    union-to-intersection.ts
    Stroke 1 of 5Not run yet

    Replace ??? — your solution is checked against the cases below. Tab indents; press Escape then Tab to move focus out.

    Checks

    4
    • UnionToIntersection<{ a: string } | { b: number }>
      { a: string } & { b: number }
    • UnionToIntersection<string>
      string
    • UnionToIntersection<'a' | 'b'>
      never
    • UnionToIntersection<{ x: 1 }>
      { x: 1 }

    How a check is judged Exact type equality, not assignability — an intersection is not the same as the flattened object.

    How everyone did

    Fewer than 5 people have solved this one so far. The distribution appears once there is enough of a sample to mean anything.

    Short game

    Fewest characters

    No public scores yet.

    Archive
    02

    Annotated solution

    This write-up publishes 24 hours after the puzzle closes.

    Uses