type Diff = ({ [P in T]: P; } & { [P in U]: never; } & { [x: string]: never; })[T]; export type Overwrite = Pick> & U; export {};