export type Union = { [K in keyof T]: K extends keyof U ? U[K] | T[K] : T[K]; } & Omit;