Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

389
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda