From 7d257cc1552c5c1ccce2868984ec91665ab6141f Mon Sep 17 00:00:00 2001 From: Starwort Date: Tue, 18 May 2021 01:38:04 +0100 Subject: [PATCH] Use DeepPartial snippet instead of shallow Partial In the spirit of the library, allow the typing support to use a deep partial instead of a shallow partial, removing type errors when reconstructing an object from a deep partial --- index.d.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/index.d.ts b/index.d.ts index 7412fcf..3810b6a 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,5 +1,8 @@ -declare function deepmerge(x: Partial, y: Partial, options?: deepmerge.Options): T; -declare function deepmerge(x: Partial, y: Partial, options?: deepmerge.Options): T1 & T2; +type DeepPartial = { + [P in keyof T]?: T[P] extends object ? DeepPartial : T[P]; +}; +declare function deepmerge(x: DeepPartial, y: DeepPartial, options?: deepmerge.Options): T; +declare function deepmerge(x: DeepPartial, y: DeepPartial, options?: deepmerge.Options): T1 & T2; declare namespace deepmerge { export interface Options {