Um dos recursos que eu mais utilizo no ES6+ hoje em dia é Desestruturação de objetos.
Existem diversas formas de fazer bom uso dessa feature tão versátil. Porém, é bom tomar um certo cuidado para não abusar das possibilidades e acabar deixando o código mais complexo e difícil de ler do que deveria.
Hoje, vamos falar sobre a atribuição de valores padrão na desestruturação de objetos, uma das diversas possibilidades dessa feature do JavaScript.
Desestruturação de Objetos
const person = {
name: 'Alison',
age: 25,
cool: true,
}
// ...
const { name, age } = person
console.log(name) // => Alison
console.log(age) // => 25
O exemplo acima mostra a definição de um objeto person
e atribuição dos valores das propriedades desse objeto a duas variáveis distintas.
Uma pergunta que pode vir a mente quando vemos um código como esse é: e se, em códigos similares a este ou até mais complexos, a propriedade utilizada na desestruturação não existir?
const person = {
name: 'Alison',
}
// ...
const { name, cool } = person
console.log(cool) // => ?
Bom, nesse caso, o output seria undefined
, pois estamos criando a variável, mas a desestruturação não conseguiu atribuir nenhum valor a mesma.
Podemos, portanto, atribuir um valor padrão as propriedades que queremos capturar, pro caso de elas não existirem no objeto em questão.
Valores padrão para propriedades de um objeto
const person = {
name: 'Alison',
}
// ...
const { name, cool = 'Yes' } = person
console.log(cool) // => Yes
E aí, curtiu? Espero que sim. Esse tipo de detalhe pode ajudar bastante na legibilidade do nosso código, além de ser muito flexível, já que aceita até chamada de funções como valor padrão.