/** * A partial interface but n levels deep */ export type RecursivePartial = { [P in keyof T]?: // eslint-disable-next-line functional/prefer-readonly-type T[P] extends Array ? Array> : T[P] extends object ? RecursivePartial : T[P]; };