以下代码示例按预期工作并打印出“[Function: Date]”
import 'reflect-metadata'
function logType(target : any, key : string) {
var t = Reflect.getMetadata("design:type", target, key);
console.log(`${key} type: ${t.name}`);
}
export class Demo {
@logType // apply property decorator
test: Date;
}
let demo = new Demo();
console.log(Reflect.getMetadata('design:type', demo, "test"));
如果我在 Angular 2 项目中放置相同的代码,则会返回“function Object() { [native code] }”。
我为此准备了一个 Plunker: https ://plnkr.co/edit/DhXT89U0q5fCOWlCrx6w?p=preview
Reflect.getMetadata('design:type' ...) 仍然适用于自定义类和其他内置类。我只能用 Date 产生这个问题。
我究竟做错了什么?