PatchType<V>:V extends (infer E)[] ? Record<`${number}`, PatchType<E>> | PatchType<E>[] : V extends number ? number : V extends bigint ? bigint : V extends object ? V extends ((...args: any[]) => any) ? never : { [K in keyof V]?: PatchType<V[K]> } : V