// Credit: https://grrr.tech/posts/2021/typescript-partial/ // Basically, a type that does Partial but for nested objects export type Subset = { [attr in keyof K]?: K[attr] extends object ? Subset : K[attr] extends object | null ? Subset | null : K[attr] extends object | null | undefined ? Subset | null | undefined : K[attr]; };