Skip to content

Commit d422304

Browse files
committed
fix: improve higher order type inference for WritableDraft
1 parent 570c800 commit d422304

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

__tests__/produce.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -758,3 +758,15 @@ it("allows for mixed property value types", () => {
758758
}
759759
})
760760
})
761+
762+
it("allows higher order type inference", () => {
763+
function _test<A>() {
764+
type S = {prop: A | undefined}
765+
produce(
766+
draft => {
767+
draft.prop = undefined
768+
},
769+
{prop: undefined} as S
770+
)
771+
}
772+
})

src/types/types-external.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export type WritableDraft<T> = T extends any[]
3737
: WritableNonArrayDraft<T>
3838

3939
type WritableNonArrayDraft<T> = {
40-
-readonly [K in keyof T]: T[K] extends infer V
40+
-readonly [K in keyof T]: {_: T[K]} extends {_: infer V}
4141
? V extends object
4242
? Draft<V>
4343
: V

0 commit comments

Comments
 (0)