Erro em método typescript
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)
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
Curtidas 0
Respostas
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!
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