Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

[Dúvida] tipagem void

não compreendi quando se usa o type void, na função adiciona() dentro de negociação-controllers, o professor define essa função como void. Pesquisando vi que void é quando uam função não retorna nada, porem a função ao meu ver retorna alguns dados, como console.log por exemplo.

3 respostas
solução!

O void no caso das funções se refere ao retorno daquela função em específico. Bem grosseiramente, seria o tipo de variável que virá depois da expressão "return". Ou seja, o tipo declarado para uma função é o tipo de dado que é esperado que seja devolvido pra quem chama aquela função. Neste caso do adiciona(), o console.log() não é um retorno de variável pra quem chama a função, ele é uma simples ação executada pela função. A função está executando aquela ação e não está retornando nenhuma variável pra quem chamou a função.

Exemplo 1: Uma função que fará a ação de printar um resultado de soma na tela:

function soma(x, y): void {
    console.log(x+y);
}

O tipo de retorno desta função será void porque quem a chama não receberá nenhum valor para guardar:

const z = soma(2,1); // z = undefined

Neste caso, o valor de z será undefined. Porque, mesmo que apareça o resultado na tela, a função não está retornando nenhum dado.

Exemplo 2: Para que houvesse um retorno precisaria do "return" indicando o que você deseja que seja retornado.

//Printa o resultado na tela depois retorna o valor pra quem chamou a função
function soma(x, y): Number {
    console.log(x+y);
    return (x+y)
}

const z = soma(2,1);           // z = 3

Muitop obrigado, sua resposta me ajudou bastante. As vezes me confundo quando usar return ou não... enfim. Agradeço muito :D

Que nada! Desculpe, acabei de fazer uma correção. Na segunda função, o retorno dela será number . Justamente, porque ela retorna um número. (eu tinha deixado como void sem querer, porque eu tinha colado da primeira função).

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software