Использование декораторов для установки начального значения свойства класса - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь понять, как я могу (и , если я могу) использовать декоратор , чтобы установить значение по умолчанию для свойства класса.Например, что-то вроде:

const defaultValue = Math.random() > 0.5 ? 'Example value' : null

class Foo {
  constructor () {
      this.bar = null
  }

  @default bar
}

const item = new Foo()

console.log(item.bar) // Should return null or 'Example value' depending on outside factors.

В приведенном выше примере явно отсутствует объявление декоратора @default, потому что я не знаю, как это сделать.

Мой примерУпрощенное выше, в действительности я буду использовать localstorage, чтобы проверить, есть ли значение, которое можно загрузить из предыдущего сеанса пользователя.Если нет, то декоратор не должен ничего менять.

Теперь - я пытался это сделать, но я не мог понять, как использовать декоратор для возврата значения, или вообще возможно ли это вообще.

Любая помощь очень ценится!

ОБНОВЛЕНИЕ: я использую это в проекте MobX , поэтому я заинтересован в продолжении работы с ES.Nextдекораторы.

...