У меня есть такой декорированный класс.
@BlingBling
@Component({ ... })
export class Classico implements OnInit {
processId: string;
}
Декоратор реализован следующим образом.
export function BlingBling(ctor: Function) {
console.log("Wheheee");
console.log(ctor);
console.log(this);
}
Я вижу, что могу увидеть конструктор (и, вероятно, вызовите его тоже), но мне не удалось получить доступ к экземпляру создаваемого класса.Я пытался это , но это undefined .Больше никаких идей, и поиск в Google не дал ничего, что я признал полезным.
Я хотел бы вставить значение в поле processId из декоратора (регистрация).Я могу представить, что это можно сделать из конструктора, но это похоже на создание зависимости, которую я не хочу создавать.
edit Я нашел этот блог гдеавтор предлагает следующий синтаксис для достижения этого, но я не уверен, что это правильный подход, так как он отказывается от синтаксиса, в котором конструктор передается в код декоратора.
function Console(message) {
console.log(message);
return function(target) {
console.log('Our decorated class', target);
};
}
@Console('Hey!')
class ExampleClass {
constructor() {
console.log('Yo!');
}
}
Я также чувствую смущениеэто класс, который мы обрабатываем тогда или экземпляр класса.Мы переопределили оригинальный конструктор этим?