interface _DeepPartialArray extends Array> { } /** @private */ type _DeepPartialObject = { [P in keyof T]?: DeepPartial; }; export type DeepPartial = T extends Function ? T : T extends Array ? _DeepPartialArray : T extends object ? _DeepPartialObject : T | undefined; export {};