Erro em método typescript

29/10/2021

0

Ao tentar implementar o método abaixo, ocorre o erro TS2345, conforme mensagem descrita. Alguém sabe como solucioná-lo?

delete(todo: Todo){
this.service.deletar(todo.id).subscribe({
next: (response) => this.listarTodos()
})
}

O argumento do tipo 'number | undefined' não é atribuível ao parâmetro do tipo 'number'. O tipo 'undefined' não pode ser atribuído ao tipo 'number'.ts(2345)
Henrico

Henrico

Responder

Posts

04/11/2021

Lourenço Lima

Bom dia,

Tente da seguinte forma:

delete(todo: Todo){
this.service.deletar(todo.id as number).subscribe({
next: (response) => this.listarTodos()
})
}

Dentro do método deletar, estamos demonstrando explicitamente que o todo.id é do tipo number (utilizando os as number na frente). O TypeScript estava esperando receber como argumento (na função deletar do service) um number e ele não sabia ao certo o tipo do todo.id!

Com essa alteração, provavelmente ele funcionará... espero ter ajudado!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar