Я пытаюсь использовать параметры по умолчанию в ES7 с помощью babel. Вот то, что я могу сделать:Именованный параметр ES6 по умолчанию без деструктурирования
class Foo {
constructor({key='value', foo='bar', answer=42}) {
this.key = key;
this.foo = foo;
this.number = number;
}
}
Это может работать для этого примера, но я хотел бы знать, как я могу назначить для очень больших объектов конфигурации; вот пример того, что я хочу сделать:
class Foo {
constructor(opts = {key='value', foo='bar', answer=42}) {
this.opts = opts;
}
}
Однако это не компилируется. Я попытался сделать это следующим образом:
class Foo {
constructor(opts = {key:'value', foo:'bar', answer:42}) {
this.opts = opts;
}
}
Но затем он заменяет весь объект, например:
let foo = new Foo({key: 'foobar'});
console.log(foo.opts);
// {key: 'foobar'} is what is displayed
// When I want {key: 'foobar', foo:'bar', answer:42}
Извините, я понял, что мой пост не совсем ясен. Поэтому я редактировал название. Я не хочу разрушать свой параметр – Vinz243
Без деструкции вам нужно скопировать объекты вручную. Я обновил ответ с рецептом, который я обычно использую для этого. – estus
Вот что я в итоге сделал, чтобы в конце концов я просто хотел узнать, смогу ли я сделать это с ES6/7. Благодаря! – Vinz243