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
。如果希望在运行时执行类型检查,则需要自己编写运行时代码。请参阅此副本中问题的答案;祝你好运