![](/img/trans.png)
[英]Typescript compile error when assigning class type to a generic variable
[英]Typescript assign generic type to variable
当尝试将通用类型分配给Type<any>
,当我知道类型是角度分量时,我无法正确获得类型约束。
但是,直接分配组件类型是可行的。
这有效
private routeComponent: Type<any>;
public component<TComponent>(): RouteBuilder {
this.routeComponent = HomeComponent;
return this;
}
这不是。
private routeComponent: Type<any>;
public component<TComponent>(): RouteBuilder {
this.routeComponent = TComponent;
return this;
}
它失败了
错误TS2693:“ TComponent”仅引用一种类型,但在此处被用作值。
我该如何做到这一点,以便我的component方法仅接受一个Component,或者如果不能这样做,则至少能够将通用类型分配给Type<any>
,就像我直接执行时一样。
泛型使用类型擦除在Typescript中实现,因此在运行时TComponent
将不可用。 您可以将类作为参数传递给函数:
public component<TComponent>(type: Type<TComponent>): RouteBuilder {
this.routeComponent = type;
return this;
}
component(HomeComponent);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.