Ich versuche, einen Konstruktor mit folgendem Verhalten für ein Argument Optionen zu definieren:ES6 Standardargument auf leeres Objekt?
class Test {
constructor({
someOption = 'foo',
otherOption = 'bar',
aSeedOfSomeSort = Math.random(),
// ...
}) {
console.log(
someOption, otherOption, aSeedOfSomeSort
);
}
}
new Test({someOption: 'lol'});
new Test({otherOption: 'derp'});
new Test({aSeedOfSomeSort: 0.5});
new Test({});
new Test(); // here's the problem
Dies funktioniert gut, aber ich möchte der Konstrukteur zu arbeiten, so dass alle Standard zu verwenden Parameter, ich muss kein leeres Objekt übergeben. Es ist mir egal, ob das Objekt selbst in den Argumenten benannt wird oder nicht, aber im Kontext des Konstruktors möchte ich einen sauberen Weg, um direkt auf alle Optionen ohne Namespace zuzugreifen oder with
zu verwenden.
Ist das möglich?
Danke Oriol! Hab das nicht gesehen –