UnionToIntersection is not what you really need
UnionToIntersection
Pay attention to the wonderful library type-fest, there are 2 suitable types: AllUnionFields and SharedUnionFields
type-fest