Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

148
Vistas
Necesidad de establecer el tipo correcto para el documento mangosta

Tengo una clase abstracta que toma un modelo de mangosta y realiza alguna manipulación.

 export default class ItemManager { private _req: Request; private _res: Response; private _dbModel: mongoose.Model<any> | any; // **can't set correct type here** constructor(req: Request, res: Response, dbModel: any) { this._req = req; this._res = res; this._dbModel = dbModel; } public getItem(condition: object) { const promise: mongoose.DocumentQuery<any, any, {}> = this._dbModel.findOne(condition) return promise.then(async(item: any) => {return ...}).catch((err) => ...) } }

Modelo de usuario

 class UserSchema extends Typegoose { @prop() firstName: string; ... @staticMethod public static myMethod .... } export const UserModel = new UserSchema().getModelForClass(UserSchema, { schemaOptions: { collection: 'users' } });

Uso:

 import { UserModel } from ''; import ItemManager from ''; const UserManager = (req: Request, res: Response) => new ItemManager(req, res, UserModel); router.post('/', (req: Request, res: Response) => UserManager(req, res).getItem({ my_condition }));

Dígame cómo especificar correctamente el tipo para _dbModel para que las solicitudes se procesen correctamente y sea posible trabajar con los resultados abstractos obtenidos (como: .then(item) => item.prop = 1 ) dentro de los métodos de ItemManager , y también use sus propios métodos estáticos allí ( this._dbModel.myMethod() )

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda