type ValueOf = T extends any[] ? T[number] : T[keyof T]; interface Size { width: number; height: number; }