diff --git a/src/interface.ts b/src/interface.ts index 751ed3b4..9923493d 100644 --- a/src/interface.ts +++ b/src/interface.ts @@ -235,20 +235,10 @@ export interface InternalHooks { } /** Only return partial when type is not any */ -type RecursivePartial = - NonNullable extends object - ? { - [P in keyof T]?: NonNullable extends (infer U)[] - ? RecursivePartial[] - : NonNullable extends object - ? RecursivePartial - : T[P]; - } - : T; - -export type FilterFunc = (meta: Meta | null) => boolean; - -export type GetFieldsValueConfig = { strict?: boolean; filter?: FilterFunc }; +type NoUndefined = Exclude; +type RecursivePartial = NoUndefined extends object ? { + [P in keyof T]?: NoUndefined extends (infer U)[] ? RecursivePartial[] : NoUndefined extends object ? RecursivePartial : T[P]; +} : T; export interface FormInstance { // Origin Form API