如何仅使用构造函数使用Reflect获取类字段类型?

时间:2019-05-05 17:33:11

标签: javascript typescript

这是我的代码:

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"); 

如何做到?

1 个答案:

答案 0 :(得分:0)

元数据已注册在该类的prototype上。因此,您可以传递原型以获取元数据:

var t = Reflect.getMetadata("design:type", Demo.prototype, "attr1"); 
console.log(t.name); // Object