Definitelytyped: @ types / express, @ types / express-serve-static-core - El servidor básico falla. 'Argument of type' "/ api" 'no se puede asignar al parámetro de tipo' RequestHandlerParams '.

Creado en 4 ago. 2017  ·  3Comentarios  ·  Fuente: DefinitelyTyped/DefinitelyTyped

  • [x] Intenté usar el paquete @types/express y @types/express-serve-static-core y tuve problemas.
  • [x] Intenté usar la última versión estable de tsc. https://www.npmjs.com/package/typescript
  • [] Tengo una pregunta que no es apropiada para StackOverflow . (Haga las preguntas pertinentes allí).
  • [x] [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

Código:

import * as express from "express";
import { Request, Response } from "express";
import * as bodyParser from "body-parser";
import * as api from "./routes/api";

namespace my_api  {
    let app = express();
    let port: number = process.env.port || 3000;
    app.use(bodyParser.json());
    app.use('/api', api);
    app.get('/', (req: Request, res: Response) => {
           res.send("Hello world");
    });

    app.listen(port, () => console.log(`Express app listening on port ${port}`);
}

Al construir:

ERROR in /path/to/server.ts (25,11): Argument of type '"/api"' is not assignable to parameter of type 'RequestHandlerParams'.

Relacionado:
expressjs / express # 3263

Comentario más útil

hola @natejgardner
También encontré este error y pasé demasiado tiempo resolviendo esto. Intenté arreglar la definición de tipos escribiendo mis propios d.ts. archivos pero fallé. Luego me encontré con este expressjs: typescript: Argument of type 'typeof'no se puede asignar al parámetro de tipo' RequestHandlerParams '
Veo muchos problemas con los tipos de TypeScript y Expressjs y tal vez este problema sea serio, pero la importación sin usar * parece resolver el problema al menos con la llamada a la función de uso sobrecargado.

Todos 3 comentarios

hola @natejgardner
También encontré este error y pasé demasiado tiempo resolviendo esto. Intenté arreglar la definición de tipos escribiendo mis propios d.ts. archivos pero fallé. Luego me encontré con este expressjs: typescript: Argument of type 'typeof'no se puede asignar al parámetro de tipo' RequestHandlerParams '
Veo muchos problemas con los tipos de TypeScript y Expressjs y tal vez este problema sea serio, pero la importación sin usar * parece resolver el problema al menos con la llamada a la función de uso sobrecargado.

@natejgardner, tu problema está en el enrutador Api:

puede probar una solución como esta (en el archivo "./routes/api"):

import { Router } from "express";
const router: Router = Router();
router.get("/", getInfo);
// ...other routes...
export = router;

Es un trabajo para mí ... disfruta :)

¿Está esto arreglado?

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