Est-il possible d'avoir des arguments de constructeur optionnels avec une valeur par défaut, comme ceci
export class Test {
constructor(private foo?: string="foo", private bar?: string="bar") {}
}
Cela me donne l'erreur suivante:
Le paramètre ne peut pas avoir de point d'interrogation ni d'initialiseur.
Je voudrais créer des instances comme
x = new Test(); // x.foo === 'foo'
x = new Test('foo1'); // x.foo === 'foo1'
x = new Test('foo1', 'bar1');
Quelle est la bonne méthode TypeScript pour y parvenir?
Un argument qui a une valeur par défaut est optionnel par définition, comme indiqué dans la documentation :
Les paramètres par défaut initialisés après que tous les paramètres requis sont traités comme facultatifs et peuvent, comme les paramètres facultatifs, être omis lors de l'appel de leur fonction respective.
C'est la même chose pour les constructeurs que pour les autres fonctions, donc dans votre cas:
export class Test {
constructor(private foo: string = "foo", private bar: string = "bar") {}
}