export type DeepRequired = { [key in K]-?: Required[key] extends object ? DeepRequired[key]> : T[key] }