kyserslick
kyserslick

Reputation: 591

Alternative to multiple constructors in angular 4

Angular 4 does not support mutliple constructors implementation, so I'm trying to find a cleaner way in to instantiate my object.

My model look like so

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

When I instantiate it, I'm forced to do like so:

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

Instatianting six lists is not pretty, I tried to have an second empty contructor to be able to do somting like

new SrcFilter()

but angular conplains with multiple constructor implementations

Upvotes: 1

Views: 3052

Answers (1)

Soma S&#246;r&#246;s
Soma S&#246;r&#246;s

Reputation: 64

If there are no injection by Angular, you can create Factory methods to achive the easy way. 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([],[],[],[],[],[]);
  }
}

then you could use to create new instances this line:

SrcFilter.getDefault();

Upvotes: 3

Related Questions