New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrect type inference with currying #831
Labels
Comments
For the function <State>(
recipe: (
state: Draft<State>,
initialState: State
) => ValidRecipeReturnType<State>
): (state?: State) => State |
it seems like this function const updatedCache3 = produce<Assignment[]>((draft) => {
const updatedAssignment = draft.find(
({contentBk}) => contentBk === assignment.contentBk
)
if (updatedAssignment) {
updatedAssignment.done = !updatedAssignment.done
}
}) will map to <State>(recipe: (state: Draft<State>, initialState: State) => ValidRecipeReturnType<State>): (state?: State) => State; not map to <State>(recipe: (state: Draft<State>) => ValidRecipeReturnType<State>): (state: State) => State; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
🐛 Bug Report
When using currying,
produce
doesn't return the original typeLink to repro
https://codesandbox.io/s/immer-sandbox-forked-342jd?file=/src/index.ts
To Reproduce
Use
produce
function without data and check the return type.Observed behavior
Curried
produce
returns:Expected behavior
Curried
produce
returns the original type.I need it, because it fails when using with Ramda's
pipe
function.Environment
We only accept bug reports against the latest Immer version.
setUseProxies(true)
setUseProxies(false)
(ES5 only)The text was updated successfully, but these errors were encountered: