TypeScript: Named Parameters

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 😉

Deixe um comentário