A linguagem JavaScript se beneficiou de alguns novos recursos realmente incríveis nos últimos anos, incluindo funções de seta, o operador de propagação e valores de argumento de função padrão. Mesmo que seu navegador ainda não ofereça suporte às adições de sintaxe da API JavaScript propostas, o senhor pode usar uma ferramenta como o Babel em seu aplicativo Node.js para aproveitá-las hoje.
Um dos meus novos recursos favoritos do JavaScript é a desestruturação de objetos. Se o senhor não estiver familiarizado com a desestruturação do JavaScript, ela basicamente fornece uma sintaxe mais curta para extrair o valor de uma chave de objeto sem a confusão da notação de ponto:
// A sample object
const myObject = { x: 1, y: 2 };
// Destructuring
const { x, y } = myObject;
// x is 1, y is 2
A sintaxe básica da desestruturação é bastante simples, mas usar a desestruturação com argumentos de função pode ser um pouco mais difícil quando os valores desses argumentos devem ter valores padrão. A seguir, uma função com argumentos que têm valores padrão:
function myFunction(text = "", line = 0, truncate = 100) {
// With default values, we can avoid a bunch of:
text = text || "";
line = line || 0;
truncate = truncate || 100;
}
Independentemente da linguagem, se uma função receber mais de ~3 parâmetros, provavelmente é melhor passar um nome de objeto options ou config que contém possíveis chaves/valores; o equivalente seria o seguinte:
function myFunction(config) {
}
// Usage
myFunction({
text: "Some value",
line: 0,
truncate: 100
})
Mas e se o senhor quiser usar a desestruturação nos argumentos da função JavaScript? A seguinte assinatura de função se tornaria:
function myFunction({ text, line, truncate }) {
}
Se quiser definir padrões na configuração da função, o senhor usaria o seguinte:
function myFunction({
text = "",
line = 0,
truncate = 100
} = {}) {
// Even if the passed in object is missing a given key, the default is used!
}
Definir um padrão com = { } é importante; sem padrão, o exemplo a seguir daria erro:
TypeError: Cannot destructure property `key` of 'undefined' or 'null'
A desestruturação é um recurso incrível da linguagem, mas pode gerar confusão e até mesmo erros. Esperamos que as noções básicas fornecidas neste guia possam ajudá-lo a navegar usando a desestruturação do JavaScript com funções!