【发布时间】:2019-07-04 10:01:52
【问题描述】:
我正在尝试在 typescript 中实现日志装饰器,但我可以重新分配 descriptor.value
我正在编译 target: "es6" 并启用了 experimentalDecorators 和 emitDecoratorMetadata 我添加了 MethodDecorator 和通用签名,但我无法为描述符重新分配值
export function log(configs: any): MethodDecorator {
return <T>(target: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T> | void => {
debugger;
const originalMethod = descriptor.value;
descriptor.value = (...args: any): any => {
console.log('ENTRY ');
console.dir(args);
const ret = originalMethod.apply(target, args);
console.log('EXIT ');
console.dir(ret);
return ret
}
return descriptor;
}
}
这应该允许我创建日志包装函数 但在行中
descriptor.value = (...args: any): any => {
我收到此错误:
类型 '(...args: any) => any' 不可分配给类型 'T'.ts(2322)
【问题讨论】:
标签: typescript decorator