Декоратор, не перезаписывающий метод суперкласса - PullRequest
0 голосов
/ 04 августа 2020

Мне нужен и пример декоратора, который не отменяет исходный метод суперкласса

Пример:

class Animal {

  sayHello(...params){
   }
}

@SomeDecorator()
class Dog extends Animal{

}

function SomeDecorator(newValue?){
   return (target) => {
      // method 
       const metadataValue = Reflect.getMetadata(
            'someKey',
            target.prototype.sayHello,
        ) || [];
        Reflect.defineMetadata(
            'someKey', 
            [ 
                ...metadataValue,
                {
                   newValue
                }
            ],
            target.prototype.sayHello,
        );
   }
}

Мне нужен декоратор только для изменения метаданных дочернего класса, но изменить метод суперкласса

Спасибо за вашу помощь.

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