Complementando com alguns detalhes:
Você não precisa usar exatamente o mesmo nome da propriedade, se quiser pode mudar. Além disso, é possível definir um valor default caso a propriedade não exista:
const Pessoa = { nomeCompleto: 'Matheus Martins', idade: 23 };
const { // propriedade nomeCompleto atribuído à variável nome
nomeCompleto : nome,
// se não tiver a propriedade endereco, usa como valor a string "não disponível"
endereco = 'não disponível' } = Pessoa;
console.log(nome); // Matheus Martins
console.log(endereco); // não disponível
E ainda é possível combinar as duas formas. Por exemplo, nomeCompleto : nome = 'sem nome'
se eu quiser que a propriedade nomeCompleto
seja atribuída na variável nome
, e caso ela não exista, o valor default seja a string 'sem nome'
.
E também é possível usar em estruturas aninhadas:
const pessoa = { nome: 'Fulano de Tal', idade: 42,
contatos: {
email: '[email protected]',
fone: '91234-5678',
endereco: { logradouro: 'Rua Tal', numero: 123 }
}
};
const { nome, contatos: { fone, endereco: { logradouro, numero = 's/n', bairro = 'bairro não informado'} } } = pessoa;
console.log(`${nome} mora em ${logradouro} ${numero} ${bairro} - telefone: ${fone}`);
// Fulano de Tal mora em Rua Tal 123 bairro não informado - telefone: 91234-5678