Em uma das últimas atualizações do core do TypeScript, a equipe de desenvolvimento fez refactoring em uma funcionalidade chamada Named Parameters .
Para ficar mais claro como funciona essa funcionalidade, imagine o seguinte cenário: “Você tem uma model com algumas propriedades string, number … e precisa passar dados para ela:
function rolandGarros(
typeMatch?: number,
typeLabel?: string,
round?: number,
roundLabel?: string,
courtName?: string,
durationInMinutes?: number
) {
return console.log(typeMatch, typeLabel, round, roundLabel, courtName, durationInMinutes);
};
Chamando a função rolandGarros :
rolandGarros(3, 'Draws', 1, 'First Round', 'Philippe-Chatrier Court', 10)
Nesse cenário é muito comum um dev passar o valor de uma propriedade no lugar da outra. Para resolver isso nós podemos utilizar o Named Parameters.
Veja abaixo como ficaria a nossa função:
function rolandGarros(
{ typeMatch, typeLabel, round, roundLabel, courtName, durationInMinutes }: { typeMatch?: number; typeLabel?: string; round?: number; roundLabel?: string; courtName?: string; durationInMinutes?: number; } = {}) {
return console.log(typeMatch, typeLabel, round, roundLabel, courtName, durationInMinutes);
};
E como nós podemos fazer uma chamada:
rolandGarros({ typeMatch: 3, typeLabel: ‘Draws’, round: 1, roundLabel: ‘First Round’, courtName: ‘Philippe-Chatrier Court’, durationInMinutes: 10 })
Note que dessa forma nós podemos passar o nome da propriedade junto com o seu valor, dessa forma fica bem mais simples de olharmos e passar o valor de cada um dos parâmetros da nossa function.
E agora, como o TypeScript 3.4 ajuda nessa conversão?
A pedido de um dev da comunidade, o pessoal adicionou a funcionalidade “Convert parameters to destructured object “, onde com apenas um click ele já altera a nossa função e os locais onde nós estamos chamado ela. Abaixo você tem um vídeo demonstrando esse passo:
Bem legal né?
Essa é uma das funcionalidades que eu acredito ajudar muito no nosso dia dia.
Espero que tenham gostado e até o próximo artigo pessoal 😉