这是我的代码:
require('reflect-metadata');
function logType(target : any, key : string) {}
class Demo{
@logType
public attr1 : string = null;
}
console.log("test:");
var t = Reflect.getMetadata("design:type", new Demo(), "attr1"); //LINE X
console.log(t.name);
此代码有效,但是,我只需要使用Demo构造函数即可获得Demo.attr1的类型而不创建Demo的实例。像这样
var t = Reflect.getMetadata("design:type", Demo, "attr1");
如何做到?
答案 0 :(得分:0)
元数据已注册在该类的prototype
上。因此,您可以传递原型以获取元数据:
var t = Reflect.getMetadata("design:type", Demo.prototype, "attr1");
console.log(t.name); // Object