1
resposta

[Dúvida] Dúvida no código

Tem duas linhas do código que realmente não entendi o que acontece exatamente.

export function valida(input) {
    const tipoDeInput = input.dataset.tipo

    if(validadores[tipoDeInput]) {
        validadores[tipoDeInput](input)
    }
}

Primeiro dentro do if, entendo até a parte que estamos procurando dentro do array validadores, mas não entendi o que o (input) faz ali, isso tá como parâmetro de função ou o quê? Só entendi que ele é passado caso o array tenha aquele tipo de (input) mas o que ele faz ali entendi nada.

O segundo é justmente o array validadores.

const validadores = {
    dataNascimento:input => validaDataNascimento(input)
}

Eu entendi a segunda metade da linha, onde é chamada a função e passado o parâmetro, mas a primeira parte, até entendi o dataNascimento, que é o data-atribbute definido no HTML, mas o que os dois pontos : tá fazendo ali?

Eu sei que essas duas partes do código se comunicam, mas não entendi como, traduzindo isso na lógica funciona.

1 resposta

Oi Hermínio, tudo bem?

Desculpe a demora em retornar.

No código que você postou, a função "valida" recebe um parâmetro "input", que é um elemento HTML que será validado. A linha "const tipoDeInput = input.dataset.tipo" está acessando o valor do atributo "data-tipo" do elemento "input" que foi passado como parâmetro.

Em seguida, a função verifica se há um validador correspondente ao tipo de input recebido, através do objeto "validadores". Se houver, a função correspondente é chamada, passando o elemento "input" como parâmetro.

Quanto à sua segunda dúvida, o objeto "validadores" é uma estrutura que armazena funções de validação para diferentes tipos de input. No exemplo que você postou, há apenas um validador para o tipo "dataNascimento". O dois pontos ":" são utilizados para associar a chave "dataNascimento" ao valor da função de validação correspondente.

Em resumo, a função "valida" é responsável por verificar o tipo de input recebido e chamar a função de validação correspondente, se existir. O objeto "validadores" armazena as funções de validação para cada tipo de input, associando-as a uma chave que identifica o tipo de input.

Um abraço e bons estudos.