Skip to content

Commit 43c372d

Browse files
authored
fix(AddUndefinedToPossiblyUndefinedProperties): recurse down objects (#471)
1 parent 9f386cb commit 43c372d

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

deno/utils/internals.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ export type Nullable<T> = {
77
* (since JSON.stringify ignores undefined properties)
88
*/
99
export type AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Base> = {
10-
[K in keyof Base]: Base[K] extends Exclude<Base[K], undefined> ? Base[K] : Base[K] | undefined;
10+
[K in keyof Base]: Base[K] extends Exclude<Base[K], undefined>
11+
? AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Base[K]>
12+
: AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Base[K]> | undefined;
1113
};
1214

1315
export type StrictPartial<Base> = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Partial<Base>>;

utils/internals.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ export type Nullable<T> = {
77
* (since JSON.stringify ignores undefined properties)
88
*/
99
export type AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Base> = {
10-
[K in keyof Base]: Base[K] extends Exclude<Base[K], undefined> ? Base[K] : Base[K] | undefined;
10+
[K in keyof Base]: Base[K] extends Exclude<Base[K], undefined>
11+
? AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Base[K]>
12+
: AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Base[K]> | undefined;
1113
};
1214

1315
export type StrictPartial<Base> = AddUndefinedToPossiblyUndefinedPropertiesOfInterface<Partial<Base>>;

0 commit comments

Comments
 (0)