TypeScript: pass generic type as parameter in generic class

后端 未结 3 584
一个人的身影
一个人的身影 2021-01-05 17:23

TypeScript: I have a method in the DataProvider class with a method getTableData:

public static getTableData(ty         


        
3条回答
  •  情书的邮戳
    2021-01-05 17:40

    maybe this would help:

    export abstract class BaseEntity {
      public static from(c: new() => T, data: any): T {
        return Object.assign(new c(), data)
      }
      public static first(c: new() => T, data) {
        if (data.rows.length > 0) {
          let item = data.rows.item(0);
          return BaseEntity.from(c, item);
        }
        return null;
      }
    
    }
    

    This class can be extended by others so you could call methods on the base class or on its subclasses.

    For instance:

    return Product.first(Product, data);
    

    Or:

    return BaseEntity.first(Product, data);
    

    See how from() method is called from inside first()

提交回复
热议问题