export type PartialDeep<T> = T extends any[] ? T : T extends Record<string, any> ? {
    [P in keyof T]?: PartialDeep<T[P]>;
} : T;
