Definitelytyped: @types/express, @types/express-serve-static-core -- Server dasar gagal. 'Argumen tipe '"/api"' tidak dapat ditetapkan ke parameter tipe 'RequestHandlerParams'.

Dibuat pada 4 Agu 2017  ·  3Komentar  ·  Sumber: DefinitelyTyped/DefinitelyTyped

  • [x ] Saya mencoba menggunakan paket @types/express dan @types/express-serve-static-core dan mengalami masalah.
  • [x] Saya mencoba menggunakan tsc versi stabil terbaru. https://www.npmjs.com/package/typescript
  • [ ] Saya punya pertanyaan yang tidak pantas untuk StackOverflow . (Silakan ajukan pertanyaan yang sesuai di sana).
  • [x] [Sebutkan](https://github.com/blog/821-mention-somebody-they-re-notified) penulisnya (lihat Definitions by: di index.d.ts ) agar mereka dapat menanggapi.

    • Penulis: @borisyankov

Kode:

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

Saat membangun:

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

Terkait:
expressjs/ekspres#3263

Komentar yang paling membantu

hai @natejgardner
Saya mengalami kesalahan ini juga dan menghabiskan terlalu banyak waktu untuk mencari tahu ini. Saya mencoba memperbaiki definisi tipe dengan menulis sendiri d.ts. file tapi saya gagal. Kemudian saya menemukan expressjs ini ' tidak dapat ditetapkan ke parameter tipe 'RequestHandlerParams'
Saya melihat banyak masalah dengan tipe TypeScript dan Expressjs dan mungkin masalah ini serius tetapi mengimpor tanpa menggunakan * tampaknya menyelesaikan masalah setidaknya dengan memanggil fungsi penggunaan yang kelebihan beban.

Semua 3 komentar

hai @natejgardner
Saya mengalami kesalahan ini juga dan menghabiskan terlalu banyak waktu untuk mencari tahu ini. Saya mencoba memperbaiki definisi tipe dengan menulis sendiri d.ts. file tapi saya gagal. Kemudian saya menemukan expressjs ini ' tidak dapat ditetapkan ke parameter tipe 'RequestHandlerParams'
Saya melihat banyak masalah dengan tipe TypeScript dan Expressjs dan mungkin masalah ini serius tetapi mengimpor tanpa menggunakan * tampaknya menyelesaikan masalah setidaknya dengan memanggil fungsi penggunaan yang kelebihan beban.

@natejgardner masalah Anda ada di Api Router:

anda dapat mencoba solusi seperti ini (ke dalam file "./routes/api"):

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

Ini bekerja untuk saya .... nikmati :)

Apakah ini tetap?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

csharpner picture csharpner  ·  3Komentar

jbreckmckye picture jbreckmckye  ·  3Komentar

demisx picture demisx  ·  3Komentar

victor-guoyu picture victor-guoyu  ·  3Komentar

jrmcdona picture jrmcdona  ·  3Komentar