From 83b08527100cbe96330d4bd5754addc5902362c0 Mon Sep 17 00:00:00 2001 From: AndreiTS Date: Mon, 3 Jul 2023 13:57:48 -0300 Subject: [PATCH] Tweak RecursivePartial to accept null --- src/interface.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/interface.ts b/src/interface.ts index 575d468c6..3365e38a5 100644 --- a/src/interface.ts +++ b/src/interface.ts @@ -231,12 +231,14 @@ export interface InternalHooks { getInitialValue: (namePath: InternalNamePath) => StoreValue; } +type NoUndefined = Exclude; + /** Only return partial when type is not any */ -type RecursivePartial = NonNullable extends object +type RecursivePartial = NoUndefined extends object ? { - [P in keyof T]?: NonNullable extends (infer U)[] + [P in keyof T]?: NoUndefined extends (infer U)[] ? RecursivePartial[] - : NonNullable extends object + : NoUndefined extends object ? RecursivePartial : T[P]; }