diff --git a/src/immer.d.ts b/src/immer.d.ts index fba72534..03ea8faf 100644 --- a/src/immer.d.ts +++ b/src/immer.d.ts @@ -65,26 +65,22 @@ export interface IProduce { * @param {Function} patchListener - optional function that will be called with all the patches produced here * @returns {any} a new state, or the initial state if nothing was modified */ - ( + , Result = any>( base: Base, - recipe: (this: Draft, draft: Draft) => Result, + recipe: (this: Proxy, draft: Proxy) => Result, listener?: PatchListener ): void extends Result ? Base : Result /** Curried producer with an initial state */ - ( + ( recipe: (this: Draft, draft: Draft) => Result, defaultBase: Default ): (base: Base | undefined) => void extends Result ? Base : Result /** Curried producer with no initial state */ - ( - recipe: ( - this: Draft, - draft: Draft, - ...extraArgs: Args - ) => Result - ): (base: Base, ...extraArgs: Args) => void extends Result ? Base : Result + ( + recipe: (this: Draft, draft: Draft, ...rest: Rest) => Result + ): (base: Base, ...rest: Rest) => void extends Result ? Base : Result } export const produce: IProduce