export type Expand = T extends object ? T extends infer O ? { [K in keyof O]: Expand; } : never : T; export type RecursivePartial = { [P in keyof T]?: T[P] extends (infer U)[] ? RecursivePartial[] : T[P] extends object ? RecursivePartial : T[P]; };