TypeScript-扩展具有带有参数的装饰器的类

我需要扩展一个带有装饰器的类,该装饰器带有一个参数。此参数需要来自子类或其他某种方式。它不能在基类中进行硬编码。在称为class-transformer的库中,该子类用作方法中plainToClass(...)的参数。

只有基类时,此方法有效。

import { someObject } from 'somelibrary';

export class Someclass {

@SomeDecorator(someObject)
someField: any;

}

但是当我尝试扩展此类并从子类或外部重构someObject参数时,someObject永远不会到达装饰器。

我尝试了一个返回Someclass的闭包,但是却收到一条错误消息,指出不允许使用装饰器。我尝试在基类的super()中添加someObject参数,但无法在装饰器中保存它。我也尝试过在子类声明失败之前将其添加到基类的原型中。

我可以看到装饰器在实例化类之前需要此参数。

如何从子类或通过其他方式为基类中的装饰器获取参数?

进一步研究之后,我发现参数在编译时传递给了装饰器。最好让装饰器在类的实例中引用一个属性。

cc0734 回答:TypeScript-扩展具有带有参数的装饰器的类

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2996539.html

大家都在问