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

180
Visualizações
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 à 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