Immer.js и eslint fp / без мутации

#javascript #immer.js

#javascript #immer.js

Вопрос:

Eslint всегда жалуется на правило Unallowed reassignment from fp/no-mutation для базовой immer конструкции:

 const nextState = produce(baseState, draftState => {
    draftState.push({todo: "Tweet about it"})
    draftState[1].done = true
})
  

Поскольку draftState всегда изменяется, как можно избежать этой неприятности?

Ответ №1:

Вы можете добавить исключение для правила fp /no-mutation в конфигурации ESLint.

 "fp/no-mutation": [
   "error",
   {
     exceptions: [{ object: "draftState" }],
   },
 ]
  

Примечание: Этого было бы достаточно только для случая, когда изменяющийся объект является «draftState». Так что вам нужно было бы иметь это в виду 🙂

Ссылка: https://github.com/jfmengels/eslint-plugin-fp/blob/master/docs/rules/no-mutation.md