我有以下课程:
export abstract class CanDeactivateComponent {
abstract canLeavePage(): boolean;
abstract onPageLeave(): void;
@someDecorator
abstract canDeactivateBeforeUnload(): boolean;
}
,我得到错误A decorator can only decorate a method implementation, not an overload
。我知道我不能在这种情况下放置装饰器,但是可以应用哪种解决方法,以便我强制此类的所有实现在@someDecorator
之前使用canDeactivateBeforeUnload
?没有任何方法可以将此装饰器放在抽象类本身中,这样我就不必在所有实现中都编写它了?
谢谢!
答案 0 :(得分:3)
我想这取决于上下文,但是也许使用一种代理可以为您服务的方法?
export abstract class CanDeactivateComponent {
abstract canLeavePage(): boolean;
abstract onPageLeave(): void;
abstract canDeactivateBeforeUnload(): boolean;
@someDecorator
_canDeactivateBeforeUnload(): boolean {
return this.canDeactivateBeforeUnload()
}
}