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

176
Vistas
Importación del modelo de objeción en la escritura para el nodo Express Middleware

así que quiero volver a codificar un proyecto "antiguo" en TypeScript 2, estoy usando la última versión de VS Code. Este proyecto usa Passport Express Middleware, por lo que Typing incluye un express.Request.user de tipo "cualquiera". Pero, uso Objetion como MySQL ORM, así que tengo una Clase de ese usuario. Hagámoslo más fácil, en lugar de fusionar "usuario". Supongamos (lo probé y fallé) que quiero tener req.lastOrder en mi middleware del tipo Order, así que tengo una clase como esta:

 import { Model } from 'objection'; export default class OrderModel extends Model { readonly id_order; public static get tableName() { return 'orders'; } constructor(){ super(); } }

Ahora, tengo un Typing para fusionar este tipo en express.Request, en un archivo llamado "express.d.ts":

 import OrderModel from '../models/Order'; declare module Express { export interface Request { lastOrder?: OrderModel; } }

La estructura de directorios "simplificada" es así:

 \ src -- \ models ---- Order.ts -- \ typings ---- express.d.ts -- app.js tsconfig.json \ node_modules

Y el tsconfig tiene esta configuración:

 { "compilerOptions": { "module": "commonjs", "target": "es6", "baseUrl": "./", "noImplicitAny": false, "sourceMap": false, "typeRoots": [ "node_modules/@types" ], "outDir": "out", "declaration": true, "traceResolution": true }, "files": [ "node_modules/objection/typings/objection/index.d.ts", "src/typings/express.d.ts" ], "include": [ "src/**/*" ] }

Ahora, si quiero hacer un req.lastOrder dentro de un Middleware, no tengo autocompletado ni nada. Después de investigar, obtuve que Importar la clase dentro de .d.ts, rompe todo el archivo ... Si elimino la importación y la mantengo así:

 declare module Express { export interface Request { lastOrder?: string; } }

Funciona :S tan claramente que importa lo que rompe la escritura.

Así que no sé cómo funciona... simplemente no puedo hacer que funcione...

¿Tienes alguna sugerencia? ¡Gracias!

about 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