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

'paciente' is declared but its value is never read.ts(6133)

Olá...Estou fazendo o curso de JavaScript e estou tendo um probleminha no meu código. Estou seguindo passo a passo a viedo aula mas meu código estáo apresentando o erro: 'paciente' is declared but its value is never read.ts(6133).

Não estou entendendo o motivo desse erro se eu declarei a 'var = paciente' dentro da 'function obtemPacienteDoFormulario'.

Tenho 2 dúvidas:

Se eu já criei uma var = pacientes,dentro da function obtemPacienteDoFormulario, pq o professor criou uma outra variavel, com o mesmo nome só que dentro do evento 'addEventListener'?

e a segunda dúvida é o motivo desse erro?

var botaoAdicionar = document.querySelector('#adicionar-paciente');
botaoAdicionar.addEventListener('click', function(event){
    event.preventDefault()


    var form = document.querySelector('#form-adiciona')

// Etrair infos do paciente
    /*var nome = form.nome.value;
    var peso = form.peso.value
    var altura = form.altura.value;
    var gordura = form.gordura.value;*/

var paciente = obtemPacienteDoFormulario(form)

let pacienteTr = document.createElement('tr')

// Criar Tr e Td do Paciente

var nomeTd = document.createElement("tr")
var pesoTd = document.createElement("td")
var alturaTd = document.createElement("td")
var gorduraTd = document.createElement("td")
var imcTd = document.createElement("td")

nomeTd.textContent = nome
pesoTd.textContent = peso
alturaTd.textContent = altura
gorduraTd.textContent = gordura
imcTd.textContent = calculaImc(peso,altura)

pacienteTr.appendChild(nomeTd)
pacienteTr.appendChild(pesoTd)
pacienteTr.appendChild(alturaTd)
pacienteTr.appendChild(gorduraTd)
pacienteTr.appendChild(imcTd)

// Add paciente na tabela
var tabela = document.querySelector('#tabela-pacientes')

tabela.appendChild(pacienteTr)

});


function obtemPacienteDoFormulario(form){
     var paciente = {
        nome: form.nome.value,
        peso: form.peso.value,
        altura: form.altura.value,
        gordura: form.gordura.value,
        imc: calculaImc(form.peso.value, form.altura.value)

     }

     return paciente

}

function montaTr(paciente){

}
4 respostas

Oi Vitor!

Creio que o erro vem da função montaTr e não da obtemPacienteDoFormulario:

Olhe o código da montaTr:

function montaTr(paciente){

}

O erro 'paciente' is declared but its value is never read quer dizer que a variável paciente foi declarada (como argumento da função), mas ela nunca é referenciada. Como a função é vazia, vemos que realmente nada acontece com a variável paciente.

O seu arquivo por acaso está com a extensão .ts em vez de .js? Se esse for o caso, você está utilizando o Typescript em vez do Javascript. Ele é um superset do Javascript que implementa algumas regrinhas a mais, como por exemplo essa de dar erro se uma variável for declarada e não foi utilizada. No javascript comum creio que isso funcionaria normalmente.

Como solução, mude para .js se estiver usando .ts, ou apenas comente a função montaTd até que seja necessário implementá-la.

Espero ter ajudado! Se tiver mais alguma dúvida pode postar aqui! :)

Opa...e ai Eduardo...valeu pela dica car. Referente ao 'montaTr', eu apenas esqueci de apaga-la mas o problema já vinha acontecendo antes de começar essa funcão. Verifiquei meu arquivo e está em .js :(

Não faço ideia o que possa estar acontecendo.

Oi Victor!

Acabei de ver que você declara a variável paciente que recebe os dados de obtemPacienteDoFormulario(form), mas você acaba usando nome, peso, altura e gordura sem relação ao paciente

Seu código está assim:

var paciente = obtemPacienteDoFormulario(form)

// ...

nomeTd.textContent = nome
pesoTd.textContent = peso
alturaTd.textContent = altura
gorduraTd.textContent = gordura
imcTd.textContent = calculaImc(peso,altura)

Deveria ser:

var paciente = obtemPacienteDoFormulario(form)

// ...

// pegando os dados de nome, peso, altura e gordura retornados de obtemPacienteDoFormulario
nomeTd.textContent = paciente.nome
pesoTd.textContent = paciente.peso
alturaTd.textContent = paciente.altura
gorduraTd.textContent = paciente.gordura
imcTd.textContent = paciente.imc // o IMC já é calculado na obtemPacienteDoFormulario()

Tente implementar essa mudança e comente aqui se deu certo ou não. Aguardo seu retorno.

solução!

Caraca!!! Mandou muitoo!!! Valeu pela força Eduardo....Ajudou muito!

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