实际代码如下:
class Greeter4 {
@format("Hello, %s")
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
let formatString = getFormat(this, "greeting");
return formatString.replace("%s", this.greeting);
}
}
const formatMetadataKey = Symbol("format");
function format(formatString: string) {
return Reflect.metadata(formatMetadataKey, formatString);
}
function getFormat(target: any, propertyKey: string) {
return Reflect.getMetadata(formatMetadataKey, target, propertyKey); //问题出在这里
}
const person3 = new Greeter4('test');
console.log(person3.greet());
请具体解释一下Reflect-metadata的具体作用和相关api,或者是否有中文资料及文档
以上代码运行报出错误
没有能够取出元数据
请把
formatMetadataKey
的声明写到代码最上方,这里设置metadata的时候,formatMetadataKey
的值还是undefined
,自然后面就拿不到具体的metadata了