gpt4 book ai didi

javascript - 动态扩展 typescript 注释中的类

转载 作者:行者123 更新时间:2023-11-30 16:10:15 24 4
gpt4 key购买 nike

假设我有 2 个类(class),A 和 B。我想创建一个 typescript 注释,它执行与动态扩展类相同的事情。我不能使用 extends 因为类 A 仅在运行时已知。所以在结果中我想要类 A 扩展 B {}但具有动态。

我尝试创建一个注解:

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
{
//...
}

当然没有更多的类型检查,因为 typescript 不知道这个 hack。

关于javascript - 动态扩展 typescript 注释中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36369588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com