2016-10-20 2 views
1

Ich habe die folgende Konstruktor:Passing einen optionalen Parameter mit einem Standardwert in Angular2

constructor(@Optional() private config?: DefaultConfig) { 
     this.config = config || new DefaultConfig(); 
    } 

Gibt es eine Möglichkeit this.config = config || new DefaultConfig(); zu vermeiden tun? Was ich will ist, den Standardwert im Konstruktor Parameter hinzuzufügen? Etwas wie dieses:

constructor(@Optional() private config?=new DefaultConfig(): DefaultConfig) {} 

Danke!

+1

Warum haben Sie ein Problem mit ihm in der Funktion Körper, wie oben zu tun? – BeetleJuice

+0

Ich habe kein Problem, aber da die Sprache mir erlaubt, Standardwerte zu verwenden, warum nicht zu benutzen? – jordins

Antwort

2

Also bin ich mit Angular2 nicht vertraut, aber in rein Typoskript, folgendes erreicht Ihre Absicht:

constructor(private config = new DefaultConfig()) {} 

Das heißt, wenn keine Config übergeben wird, this.config wird ein neuer DefaultConfig sein. Es stellt auch sicher, dass der Konstruktorparameter vom Typ DefaultConfig sein muss.

+1

Nein, das funktioniert nicht bei angular2 mit optionalen Parametern. Fehler: Kann nicht alle Parameter für MyClassName auflösen. – jordins

1

Haben Sie Folgendes versucht?

constructor(@Optional() private config: DefaultConfig=new DefaultConfig()) { 
    .. 
} 

Hinweis: nicht mehr ? vor :

Verwandte Themen