Erro em método typescript

Angular

TypeScript

29/10/2021

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

Curtidas 0

Respostas

Lourenço Lima

Lourenço Lima

29/10/2021

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!
GOSTEI 0
POSTAR