Definitelytyped: @types/express, @types/express-serve-static-core -- Le serveur de base échoue. 'Argument de type '"/api"' n'est pas assignable au paramètre de type 'RequestHandlerParams'.

Créé le 4 août 2017  ·  3Commentaires  ·  Source: DefinitelyTyped/DefinitelyTyped

  • [x ] J'ai essayé d'utiliser les packages @types/express et @types/express-serve-static-core et j'ai eu des problèmes.
  • [x] J'ai essayé d'utiliser la dernière version stable de tsc. https://www.npmjs.com/package/typescript
  • [ ] J'ai une question inappropriée pour StackOverflow . (Veuillez y poser toutes les questions appropriées).
  • [x] [Mention](https://github.com/blog/821-mention-somebody-they-re-notified) les auteurs (voir Definitions by: dans index.d.ts ) afin qu'ils puissent répondre.

    • Auteurs : @borisyankov

Code:

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}`);
}

Lors de la construction :

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

En rapport:
expressjs/express#3263

Commentaire le plus utile

salut @natejgardner
J'ai également rencontré cette erreur et j'ai passé beaucoup trop de temps à la résoudre. J'ai essayé de corriger la définition des types en écrivant mes propres d.ts. fichiers mais j'ai échoué. Puis je suis tombé sur cet expressjs : typescript : Argument de type 'typeof' n'est pas assignable au paramètre de type 'RequestHandlerParams'
Je vois beaucoup de problèmes avec les types TypeScript et Expressjs et peut-être que ce problème est sérieux, mais l'importation sans utiliser * semble résoudre le problème au moins avec l'appel de la fonction d' utilisation surchargée.

Tous les 3 commentaires

salut @natejgardner
J'ai également rencontré cette erreur et j'ai passé beaucoup trop de temps à la résoudre. J'ai essayé de corriger la définition des types en écrivant mes propres d.ts. fichiers mais j'ai échoué. Puis je suis tombé sur cet expressjs : typescript : Argument de type 'typeof' n'est pas assignable au paramètre de type 'RequestHandlerParams'
Je vois beaucoup de problèmes avec les types TypeScript et Expressjs et peut-être que ce problème est sérieux, mais l'importation sans utiliser * semble résoudre le problème au moins avec l'appel de la fonction d' utilisation surchargée.

@natejgardner, votre problème concerne le routeur Api :

vous pouvez essayer une solution comme celle-ci (dans le fichier "./routes/api") :

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

C'est du travail pour moi....profiter :)

Est-ce que c'est réglé ?

Cette page vous a été utile?
0 / 5 - 0 notes