Definitelytyped: @types/express, @types/express-serve-static-core -- Basisserver fällt aus. 'Argument vom Typ '"/api"' ist dem Parameter vom Typ 'RequestHandlerParams' nicht zuweisbar.

Erstellt am 4. Aug. 2017  ·  3Kommentare  ·  Quelle: DefinitelyTyped/DefinitelyTyped

  • [x ] Ich habe versucht, die Pakete @types/express und @types/express-serve-static-core und hatte Probleme.
  • [x] Ich habe versucht, die neueste stabile Version von tsc zu verwenden. https://www.npmjs.com/package/typescript
  • [ ] Ich habe eine Frage, die für StackOverflow ungeeignet ist. (Bitte stellen Sie dort entsprechende Fragen).
  • [x] [Erwähnen](https://github.com/blog/821-mention-somebody-they-re-notified) die Autoren (siehe Definitions by: in index.d.ts ), damit sie es können Antworten.

    • Autoren: @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}`);
}

Beim Bauen:

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

Verwandt:
expressjs/express#3263

Hilfreichster Kommentar

Hallo @natejgardner
Ich bin auch auf diesen Fehler gestoßen und habe viel zu viel Zeit damit verbracht, dies herauszufinden. Ich habe versucht, die Typendefinition zu reparieren, indem ich eigene d.ts geschrieben habe. Dateien, aber ich bin gescheitert. Dann bin ich auf dieses expressjs gestoßen: typescript: Argument vom Typ 'typeof' ist Parameter vom Typ 'RequestHandlerParams' nicht zuweisbar
Ich sehe viele Probleme mit TypeScript-Typen und Expressjs und vielleicht ist dieses Problem ernst, aber das Importieren ohne Verwendung von * scheint das Problem zumindest beim Aufrufen der überladenen Verwendungsfunktion zu lösen.

Alle 3 Kommentare

Hallo @natejgardner
Ich bin auch auf diesen Fehler gestoßen und habe viel zu viel Zeit damit verbracht, dies herauszufinden. Ich habe versucht, die Typendefinition zu reparieren, indem ich eigene d.ts geschrieben habe. Dateien, aber ich bin gescheitert. Dann bin ich auf dieses expressjs gestoßen: typescript: Argument vom Typ 'typeof' ist Parameter vom Typ 'RequestHandlerParams' nicht zuweisbar
Ich sehe viele Probleme mit TypeScript-Typen und Expressjs und vielleicht ist dieses Problem ernst, aber das Importieren ohne Verwendung von * scheint das Problem zumindest beim Aufrufen der überladenen Verwendungsfunktion zu lösen.

@natejgardner dein Problem liegt im Api Router:

Sie können eine Lösung wie diese versuchen (in die Datei "./routes/api"):

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

Es ist Arbeit für mich .... viel Spaß :)

Ist das behoben?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

alisabzevari picture alisabzevari  ·  3Kommentare

demisx picture demisx  ·  3Kommentare

JWT
svipas picture svipas  ·  3Kommentare

victor-guoyu picture victor-guoyu  ·  3Kommentare

fasatrix picture fasatrix  ·  3Kommentare