替代角4中的多个构造函数

时间:2018-02-06 13:03:14

标签: angular typescript

Angular 4不支持mutliple构造函数实现,所以我试图找到一种更简洁的方法来实例化我的对象。

我的模特看起来像这样

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([], [], [], [], [], []);

Instatianting六个列表并不漂亮,我试图让第二个空构造器能够像

那样进行somting
  

new SrcFilter()

但是有多个构造函数实现的角公式

1 个答案:

答案 0 :(得分:3)

如果Angular没有注入,您可以创建Factory方法以实现简单方法。 Forexample:

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