Por qué en nestjs se pasan los parametros númericos con un “+”? por ejemplo: <code> delete(@Param(&#x27;id&#x27;) id: number) { ret...

Mauricio Moreno Morales

Mauricio Moreno Morales

Pregunta
student
hace 5 años

Por 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); }
3 respuestas
    Irving Caamal

    Irving Caamal

    student
    hace 5 años

    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

    Santiago Muñoz

    student
    hace 5 años

    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

    Santiago Muñoz

    student
    hace 5 años

    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]

Curso de Backend con NestJS [2023]

Desarrolla aplicaciones backend sólidas y escalables con NestJS. Aprende a crear APIs REST, gestiona controladores, servicios y valida datos con DTOs. Implementa prácticas modernas de arquitectura y validación de datos. Este curso ha sido actualizado. Te invitamos a tomar la nueva versión.

Curso de Backend con NestJS [2023]
Curso de Backend con NestJS [2023]

Curso de Backend con NestJS [2023]

Desarrolla aplicaciones backend sólidas y escalables con NestJS. Aprende a crear APIs REST, gestiona controladores, servicios y valida datos con DTOs. Implementa prácticas modernas de arquitectura y validación de datos. Este curso ha sido actualizado. Te invitamos a tomar la nueva versión.