Typescript + Immutable JS расширение класса записей приводит к ошибке: невозможно установить неизменную запись - PullRequest
0 голосов
/ 03 февраля 2020

Я пытался заставить следующий код работать с использованием неизменяемого (4.0.0-r c .12) и машинописного текста (3.7.3) в рамках более крупного проекта React / Redux. Я удалил ненужный код.

interface IState {
  test        : boolean,
};

export const defaultValues = {
    test        : false,
};

const StateRecord = Record({
  test        : false,
})

export class State extends StateRecord {
  test           : boolean;

  constructor(values: IState) {
    super(values);
    this.test = values?.test || defaultValues.test;
  }
};

export const InitialState = new State(defaultValues);

Это приведет к следующей ошибке

Error: Cannot set on an immutable record.

При трассировке стека в браузере:

  28 | export class State extends StateRecord {
  29 |   test           : boolean;
  30 | 
> 31 |   constructor(values: IState) {
  32 |     super(values);
  33 |     this.test = values?.test || defaultValues.test;
  34 |   }

I ' Мы пробовали много разных решений, но в конце концов эта ошибка всегда возвращается, любая помощь будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...