Definitelytyped: Los mecanografiados expresos parecen ahogarse con el middleware

Creado en 30 may. 2018  ·  3Comentarios  ·  Fuente: DefinitelyTyped/DefinitelyTyped

  • [√] Intenté usar el paquete @types/xxxx y tuve problemas.
  • [√] Intenté usar la última versión estable de tsc. https://www.npmjs.com/package/typescript
  • [√] Tengo una pregunta que no es apropiada para StackOverflow .
  • [√] [Mencione] (https://github.com/blog/821-mention-somebody-they-re-notified) a los autores (consulte Definitions by: en index.d.ts ) para que puedan responder.

    • Autores: @borisyankov @ 19majkel94 @kacepe @micksatana @samijaber

Tengo el problema actual al usar @ types / express 4.11.1 y TSC 2.8.3.

El siguiente código no se puede compilar:

function aMiddleware(req: Request, res: Response, next: NextFunction) {
    next();
}

app.get('/foo/bar', aMiddleware);

Obtuve el siguiente error:

TS2345: Argument of type '(req: Request, res: Response, next: NextFunction) => void' is not assignable to parameter of type 'RequestHandlerParams'.
  Type '(req: Request, res: Response, next: NextFunction) => void' is not assignable to type '(RequestHandler | ErrorRequestHandler)[]'.
    Property 'includes' is missing in type '(req: Request, res: Response, next: NextFunction) => void'.

Comentario más útil

Hola jimmy

Necesitas importar así ...

import { Express, Request, Response, NextFunction } from 'express';
const express = require('express');

const app: Express = express();

function aMiddleware(req: Request, res: Response, next: NextFunction) {
    next();
}

app.get('/foo/bar', aMiddleware);

El motivo es que Request , Response , NextFunction de Node.js no son lo mismo que Express.

Espero que esto ayude.

Todos 3 comentarios

Hola jimmy

Necesitas importar así ...

import { Express, Request, Response, NextFunction } from 'express';
const express = require('express');

const app: Express = express();

function aMiddleware(req: Request, res: Response, next: NextFunction) {
    next();
}

app.get('/foo/bar', aMiddleware);

El motivo es que Request , Response , NextFunction de Node.js no son lo mismo que Express.

Espero que esto ayude.

¡Gracias, lo intentaré!

Esto funciona muy bien. Muchas gracias de nuevo.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Zzzen picture Zzzen  ·  3Comentarios

JWT
svipas picture svipas  ·  3Comentarios

victor-guoyu picture victor-guoyu  ·  3Comentarios

jrmcdona picture jrmcdona  ·  3Comentarios

demisx picture demisx  ·  3Comentarios