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

angular 4中多个构造函数的替代方案

  •  1
  • kyserslick  · 技术社区  · 7 年前

    Angular 4不支持多构造函数实现,所以我正在尝试寻找一种更干净的方法来实例化我的对象。

    我的模特看起来像

    export class SrcFilter {
    
    constructor(public fList?: Array<String>, public sList?: Array<String>, public tList?: Array<String>,
                public fList?: Array<String>, public fiList?: Array<String>, public sList?: Array<String>) {
     }
    }
    

    当我实例化它时,我被迫这样做:

    allFilters: SrcFilter = new SrcFilter([], [], [], [], [], []);
    

    安装六个列表并不漂亮,我尝试了第二个空的构造函数,以便能够像

    新建SrcFilter()

    但角度上需要多个构造函数实现

    1 回复  |  直到 6 年前
        1
  •  3
  •   Soma Sörös    7 年前

    如果没有角度注入,可以创建工厂方法来实现简单的方法。例如:

    export class SrcFilter {
      constructor(public aList?: Array<String>, public bList?: Array<String>, public cList?: Array<String>,
                public dList?: Array<String>, public eList?: Array<String>, public fList?: Array<String>) {
      }
    
      public static getDefault():SrcFilter {
        return new SrcFilter([],[],[],[],[],[]);
      }
    }
    

    然后您可以使用此行创建新实例:

    SrcFilter.getDefault();