Использовать частную собственность класса с заметным декоратором MobX - PullRequest
1 голос
/ 31 января 2020

Я выполняю рефакторинг исходного кода моего веб-приложения, используя MobX в качестве хранилища данных, и хочу использовать предлагаемые частные поля класса .

К сожалению, частные поля не работают с декораторами MobX, например, @observable:

class Game {
  @observable.ref #levelPack;

  get levelPack() {
    return this.#levelPack;
  }
}

Пропускание вавилона завершается с ошибкой:

Значение свойства ожидаемый тип строки, но имеет значение null

ESLint также недоволен этим:

TypeError: Cannot read property 'type' of undefined

Я пытался использовать exteObservable в конструкторе, но он также не работает:

class Game {
  constructor() {
    extendObservable(this, {
      #levelPack: null
    });
  }

  get levelPack() {
    return this.#levelPack;
  }
}

.babelr c

{
  "presets": [
    "@babel/env",
    "@babel/react",
    "mobx"
  ],
  "plugins": [
    "@babel/plugin-syntax-dynamic-import"
  ]
}

Мой вопрос: можно ли использовать частные поля класса с декораторами?

...