Ist es möglich, optionale Konstruktorargumente mit Standardwerten wie diesem zu haben?
export class Test {
constructor(private foo?: string="foo", private bar?: string="bar") {}
}
Dies gibt mir den folgenden Fehler:
Parameter dürfen kein Fragezeichen und keinen Initialisierer haben.
Ich möchte Instanzen wie erstellen
x = new Test(); // x.foo === 'foo'
x = new Test('foo1'); // x.foo === 'foo1'
x = new Test('foo1', 'bar1');
Was ist der richtige Typoskript-Weg, um dies zu erreichen?
Ein Argument, das einen Standardwert hat, ist per Definition optional, as in den Dokumenten angegeben:
Standardmäßig initialisierte Parameter, die nach allen erforderlichen Parametern kommen, werden als optional behandelt und können genau wie optionale Parameter beim Aufruf ihrer jeweiligen Funktion weggelassen werden
Für Konstruktoren gilt dasselbe wie für andere Funktionen, also in Ihrem Fall:
export class Test {
constructor(private foo: string = "foo", private bar: string = "bar") {}
}
Sie können Fragezeichen nach Ihren Argumenten hinzufügen, was sauberer ist. Wenn Sie Standardparameter hinzufügen, sollten diese standardmäßig optional sein.
export class Test {
foo: string;
bar: string;
constructor(foo?: string, bar?: string) {
this.foo = foo;
this.bar = bar;
}
}
14384100cookie-checkSo definieren Sie optionale Konstruktorargumente mit Standardwerten in Typescriptyes