我有一个像这样的方法装饰器:
export function NumberMethodDecorator(message: string) {
return (target: object, propertyKey: string, descriptor?: TypedPropertyDescriptor<any>) => {
// do some stuff here
}
}
我想像这样应用它:
class SomeClass {
@NumberMethodDecorator("do some cool stuff")
public someMethod(value: number) {
}
}
但是,我想确保NumberMethodDecorator
仅适用于签名为(value: number) => any
的方法。
我该怎么做?
答案 0 :(得分:1)
在TypedPropertyDescriptor
的
export function NumberMethodDecorator(message: string) {
return (
target: object, propertyKey: string,
descriptor?: TypedPropertyDescriptor<(value: number) => any>
) => {
// do some stuff here
};
}
然后使用时:
class SomeClass {
@NumberMethodDecorator("") // ok
someMethod(value: number) {
}
@NumberMethodDecorator("") // compile error
otherMethod() {
}
}