Mauricio Moreno Morales
PreguntaPor qué en nestjs se pasan los parametros númericos con un “+”? por ejemplo:
delete(@Param('id') id: number) { return this.productsService.delete(+id); }
Cuándo no lo paso me da error de tipado, no puedo hacer una igualdad triple solo me funciona con igualdades dobles
delete(id: number) { this.products = this.products.filter((el) => el.id !== id); }
Irving Caamal
Esto va más alla del framework de Nest en sí y es propio del lenguaje Javascript, es un operador unario y según mdn:
++Operador unario: Intenta convertir el operando en un número, si aún no lo es.++
Si falla devuelve un NaN
Te dejo más info de esto aquí, yo tampoco conocía este truco.
Santiago Muñoz
Los parámetros que llegan a través de la URL siempre son strings, aun si los tipeas como number, por eso te marca error de tipeado ya que en el servicio estas esperando un number. Puedes comprobarlo imprimiendo el tipo de la variable 'id'.
console.log(typeof productId);
El operador '+' te permite convertir el valor a un número.
Santiago Muñoz
Por otro lado la igualdad triple es mucho mas restrictiva que la igualdad doble, ya que evalua que el tipo de las variables sean iguales, por eso no te funciona, ya que los tipos no son iguales.
Igualdades triples vs dobles%20solo%20verifica,Hace%20coerci%C3%B3n%20de%20tipos%20inherentemente.&text=Por%20el%20otro%20lado%2C%20Triple,el%20mismo%20tipo%20de%20variable.)
![Curso de Backend con NestJS [2023]](https://static.platzi.com/media/courses/Piezas-Backend-NestJS-compressed.jpg)