我目前有:
function classDecorator<T extends {new(...args:any[]):{}}>(constructor:T) {
return class extends constructor {
newProperty = "new property";
hello = "override";
}
}
function logType(target : any, key : string) {
var t = Reflect.getMetadata("design:type", target, key);
console.log(`${key} type: ${t.name}`);
}
@classDecorator
class Data {
@logType
station: number;
@logType
name: string;
@logType
letters: string;
constructor(station: number, name: string, letters: string) {
this.station = station;
this.name = name;
this.letters = letters;
}
}
其中logType
装饰器获取每个装饰属性的类型。我想知道的是,是否可以通过某种方式设法将其与classDecorator
结合起来?
classDecorator
,就可以从整个类中获取所有属性的名称和类型。