当函数返回类型为Promise<number>
时,如何通过反射得到它?
如果我愿意
Reflect.getMetadata("design:returntype", target, key)
它只返回Promise
,所以我们不知道这是数字的承诺吗?
name:"Promise"
prototype:Promise {constructor: , then: , catch: , …}
reject:function reject() { … }
resolve:function resolve() { … }
答案 0 :(得分:0)
似乎在不久的将来将不支持此功能。
如#14971 (comment)中所述,反射和运行时类型序列化暂时不在TypeScript项目的范围之内。
— Mohamed Hegazy (link)
答案 1 :(得分:-1)
尝试使用自定义方法装饰器?
/* 重要说明
(打字稿)
export function ReturnType(type: any): MethodDecorator {
return (target, propertyKey) => {
Reflect.defineMetaData('YOUR_CUSTOM_KEY', type, target, propertyKey);
}
}
// Somewhere in your code
@ReturnType(Number)
async function myFunc():Promise<number> {
return await Promise.resolve(1234)
}