YPSKA #12 Immer

hfahlstedt profile image Håkan Fahlstedt ・1 min read

Immutability is kind of hard in JavaScript, at least it takes a bit of work to make it happen.

To make it easier, there's of course a library for that, Immer. Immer uses something called producers to update state and also keep that new state immutable. The basic idea is like this:

const newState = produce(oldState, draft => {
   // modify state

So you pass in the old state and a function that takes a "draftState" and makes modifications to it. The returned state is really a read-only object produced by Object.freeze().

If you need immutability in your JavaScript/TypeScript, check out Immer.

Less than ten minutes margin from missing a day in this series ;-)


markdown guide