У меня есть класс с конструктором декоратора, который применяет дополнительные свойства.
В этом декораторе я вызываю метод класса через прототип конструктора.
function classDecorator(params: any) {
return function <T extends { new(...args: any[]): {} }>(constructor: T) {
constructor.prototype.someFunc();
return class extends constructor {
// add new properties...
}
}
}
И класс:
@classDecorator("someParams")
class SomeClass {
someProp: string;
otherProp: string = "otherProp";
constructor(val) {
this.someProp = val;
}
someFunc() {
console.log(this.someProp);
console.log(this.otherProp);
}
}
Когда я создал экземпляр этого класса:
let obj = new SomeClass("someth");
затем метод "someFunc ()" вызывается внутри декоратора, но оба свойства "someProp" и "otherProp" не определены.
Кажется, это потому, что метод был вызван, но свойства еще не инициализированы.
Какой правильный способ вызова методов класса из конструктора декоратора в таком случае?
Любая помощь будет замечательной.
Заранее спасибо.