Typescript 类型脚本检查泛型类型等于
您好,我有一个类,其中我提供了一个泛型类型,以便能够检查该值是否是该类型的实例或类型,但它不起作用,我无法想象如何解决此问题:Typescript 类型脚本检查泛型类型等于,typescript,Typescript,您好,我有一个类,其中我提供了一个泛型类型,以便能够检查该值是否是该类型的实例或类型,但它不起作用,我无法想象如何解决此问题: export class Controller<T> { private controllers: any[]; public registerControllersInContainer = () => { for (let controller of this.controllers) { const validate
export class Controller<T> {
private controllers: any[];
public registerControllersInContainer = () => {
for (let controller of this.controllers) {
const validate = isClass<T>(controller);
if (validate) container.registerSingleton<T>('Controllers', controller);
}
};
}
导出类控制器{
私人控制人:任何[];
公共注册表控制器容器=()=>{
for(让此.controllers的控制器){
const validate=isClass(控制器);
if(验证)container.registerSingleton('Controllers',controller);
}
};
}
我试着这样做:
export const isClass = <T>(object: any): object is T => {
if (object as T) {
return true;
}
return false;
};
export const isClass=(对象:any):对象是T=>{
if(对象为T){
返回true;
}
返回false;
};
但始终返回true,instanceof和typeof不起作用:“T”仅指一个类型,但在此处用作值。ts(2693)您不能按规定执行此操作;当TypeScript被发送到JavaScript时,类型系统被擦除。运行时没有
T
;运行的代码类似于if(object){return true;}return false
对于任何truthy对象
,它将是true
。如果希望在运行时执行类型检查,则需要自己编写运行时代码。请参阅此副本中问题的答案;祝你好运