Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

395
Views
TypeScript, promesa e interfaz

Recientemente comencé a usar TypeScript, pero estoy atascado en un lugar y no puedo encontrar una solución a un problema. ¿Puedes responder? ¿Cómo acortar el código y deshacerse de la creación de una clase intermedia vacía PaginatedUserDTO?

archivo: paginated-user.dto.ts

 export class PaginatedUserDTO extends Paginated(UserDTO) {}

archivo: usuario.servicio.ts

 async find(filter?: findArgs): Promise<PaginatedUserDTO> { const { first, after, last, before, find } = filter; const query = this.User.find(find); return paginate(query, filter); }

Intenté escribir algo como:

 async find(filter?: findArgs): Promise<Type extends Paginated(BusStopDTO)> { ... }

Pero no funcionó.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Si entendí correctamente, Paginated<T>(classRef: Type<T>) devuelve Type<IPaginatedType<T>> , por lo que puede intentar algo como

 async find(filter?: findArgs): Promise<Type<IPaginatedType<BusStopDTO>>> { ... }

comentame si no te funciono

about 4 years ago · Juan Pablo Isaza Report

0

¡Gracias! Si, funciona. Pero todavía no puedo cambiar el parámetro del decorador Query(). Es parte de @nestjs/graphql, intentaré buscar una solución en Google.

archivo: usuario.resolve.ts

 @Query(() => PaginatedUserDTO) async find(@Args() filter?: findArgs) : Promise<IPaginatedType<UserDTO>> { return this.userService.find(filter); }

archivo: usuario.servicio.ts

 async find(filter?: findArgs): Promise<IPaginatedType<UserDTO>> { const { first, after, last, before, find } = filter; const query = this.userModel.find(find); return paginate(query, filter); }

Si escribo lo siguiente, me aparecerá un error:

archivo: usuario.resolve.ts

 @Query(() => IPaginatedType<UserDTO>) async find(@Args() filter?: findArgs) : Promise<IPaginatedType<UserDTO>> { return this.userService.find(filter); }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!