type RecursivePartial<T> = {
    [P in keyof T]?: T[P] extends Array<infer U> | undefined
        ? Array<RecursivePartial<U>>
        : T[P] extends object | undefined
        ? RecursivePartial<T[P]>
        : T[P];
};

export default RecursivePartial;
