immerjs / immer

Create the next immutable state by mutating the current one

Home Page:https://immerjs.github.io/immer/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`produceWithPatches` wrong return type

omnitout opened this issue Β· comments

πŸ› Bug Report

The curried form of produceWithPatches returns the wrong type, while produce does.

Link to repro

https://codesandbox.io/s/producewithpatches-wrong-return-type-mr5hdp?file=/src/index.ts

Observed behavior

The state returned by produceWithPatches((draft: Draft<N>, m: number) => { ... }) is of type WritableDraft<N> but should be of type N.

The type of produceWithPatches<N, [number]>((draft, m) => { ... }) is never while the type of produce<N, [number]>((draft, m) => { ... }) is as expected.

Expected behavior

The types of the values returned by produceWithPatches should be the same as produce.

Environment

  • Immer version: 10.0.1
  • I filed this report against the latest version of Immer
  • Occurs with setUseProxies(true)
  • Occurs with setUseProxies(false) (ES5 only)