![](/img/trans.png)
[英]Declaring events in a TypeScript class which extends an abstract class that extends EventEmitter
[英]Dynamic extends class in a typescript annotation
假设我有2个类,A和B。我想创建一个打字稿注释,该注释执行与动态扩展类相同的操作。 我不能使用扩展,因为类A仅在运行时才知道。因此,结果我希望类A扩展B {}但使用A动态。
我试图创建一个注释:
function extendsWithB(target) {
//do something to extends the target with B class
return target;
}
可以这样使用:
@extendsWithB
Class A {}
关于应在注释中添加什么的任何想法?
编辑:这个问题纯粹是理论上的。 我不想在生产或其他方面尝试使用。
我认为您可以通过执行以下操作来达到所需的效果:
export function Ext(bCtor: any)
{
return (aCtor: any) =>
{
Object.getOwnPropertyNames(bCtor.prototype).forEach(name => {
aCtor.prototype[name] = bCtor.prototype[name];
});
}
}
并应用:
@Ext(B)
class A
{
//...
}
当然没有更多的类型检查了,因为打字稿不知道这种黑客。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.