Typescript类修饰符,强制目标类扩展另一个类

Typescript类修饰符,强制目标类扩展另一个类,typescript,decorator,Typescript,Decorator,我试图编写一个类装饰器,它强制目标类扩展另一个类 假设示例: @Component class MyComponent extends WebComponent { } 我希望@Component装饰器强制目标类在WebComponent上扩展 我试过很多方法,但似乎都不管用。我认为事情会像这样简单: export function Component(options: ComponentConstructorOptions) { return <T extends WebCom

我试图编写一个类装饰器,它强制目标类扩展另一个类

假设示例:

@Component
class MyComponent extends WebComponent
{
}
我希望
@Component
装饰器强制目标类在
WebComponent
上扩展

我试过很多方法,但似乎都不管用。我认为事情会像这样简单:

export function Component(options: ComponentConstructorOptions)
{
    return <T extends WebComponent>(target: T): T => {
        console.log(target);
        
        return target;
    };
}
导出功能组件(选项:组件构造函数选项)
{
返回(目标:T):T=>{
控制台日志(目标);
回报目标;
};
}
因此,如果
MyComponent
没有扩展到
WebComponent
,我希望typescript编译失败


非常感谢您的帮助

好吧,我偶然发现了修复方法。结果证明,这就像在装饰者的函数签名中使用
typeof
一样简单:

return (target: typeof WebComponent) => {
    console.log(target);
};