Я пытаюсь изменить приватное поле из метода того же класса с помощью immer.js. Но в этом случае мне нужен доступ не к this
, а к черновому экземпляру того же класса. Это приводит к ошибке.
import produce from "immer";
export class Test {
private foo: number = 0;
bar(foo: number): Test {
return produce<Test>(this, draft => {
draft.foo = foo; // <- TS2339: Property 'foo' does not exist on type '{ bar: (foo: number) => Test; }'.
})
}
}
Есть ли способ использовать immer.js без превращения полей в публичные?