代码之家  ›  专栏  ›  技术社区  ›  Ming

Typescript检查泛型类型等于

  •  0
  • Ming  · 技术社区  · 4 年前

    你好,我有一个类,我提供了一个泛型类型,以便能够检查值是否是该类型的实例或类型,但它不起作用,我无法想象如何解决这个问题:

    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);
        }
      };
    }
    

    我试着这样做:

    export const isClass = <T>(object: any): object is T => {
      if (object as T) {
        return true;
      }
      return false;
    };
    

    但始终返回true,instanceof和typeof不起作用:“T”仅指类型,但用作值给你(2693)

    0 回复  |  直到 4 年前