如何在Typescript中组合类装饰器和属性装饰器?

时间:2020-02-19 18:44:19

标签: javascript typescript typescript-decorator

我目前有:


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,就可以从整个类中获取所有属性的名称和类型。

0 个答案:

没有答案