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 5Puzzle
union-to-intersection.tsStroke 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
4UnionToIntersection<{ a: string } | { b: number }>—→ { a: string } & { b: number }UnionToIntersection<string>—→ stringUnionToIntersection<'a' | 'b'>—→ neverUnionToIntersection<{ 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 charactersNo public scores yet.
02
Annotated solution
This write-up publishes 24 hours after the puzzle closes.
