Декоратор не добавляет свойства к классу, который он декорирует. Как мне это исправить? - PullRequest
1 голос
/ 27 марта 2019

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

Я попробовал базовый пример декоратора из статьи, которую я прочитал.Вот кодовая ручка ссылка .Я определил функцию декоратора под названием супергерой.Я украшаю свой класс "MySuperHero" этим.Насколько мне известно, декоратор должен добавить свойство свойства к классу.но когда я делаю console.log, он показывает неопределенный.

function superhero(target) {
  target.isSuperhero = true
  target.power = 'flight'
}

@superhero
class MySuperHero {

}

console.log(MySuperHero.power) // It should show "flight" but its showing undefined in console 

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Вы должны использовать babel --optional es7.decorators (babel CLI) для включения декораторов.Поскольку это все еще предложение, дополнительную информацию можно найти здесь .

Надеюсь, это поможет!

0 голосов
/ 27 марта 2019

Javascript изначально не поддерживает @ декораторов, вы должны использовать babel, пожалуйста, следуйте инструкциям по установке, упомянутым в ссылке: https://babeljs.io/docs/en/babel-plugin-proposal-decorators

...