Definitelytyped: @ types / express, @ types / express-serve-static-core - falha no servidor básico. 'Argumento do tipo' "/ api" 'não é atribuível ao parâmetro do tipo' RequestHandlerParams '.

Criado em 4 ago. 2017  ·  3Comentários  ·  Fonte: DefinitelyTyped/DefinitelyTyped

  • [x] Tentei usar os pacotes @types/express e @types/express-serve-static-core e tive problemas.
  • [x] Tentei usar a versão estável mais recente do tsc. https://www.npmjs.com/package/typescript
  • [] Tenho uma pergunta que é inadequada para StackOverflow . (Por favor, faça todas as perguntas apropriadas lá).
  • [x] [Mencione] (https://github.com/blog/821-mention-somebody-they-re-notified) os autores (veja Definitions by: em index.d.ts ) para que eles possam 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}`);
}

Ao 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

Comentários muito úteis

oi @natejgardner
Eu também encontrei esse erro e gastei muito tempo tentando descobrir isso. Tentei consertar a definição de tipos escrevendo o próprio d.ts. arquivos, mas eu falhei. Então me deparei com este expressjs: typescript: Argument of type 'typeof'não é atribuível ao parâmetro do tipo' RequestHandlerParams '
Vejo muitos problemas com tipos TypeScript e Expressjs e talvez esse problema seja sério, mas importar sem usar * parece resolver o problema pelo menos com a chamada de função de uso sobrecarregada.

Todos 3 comentários

oi @natejgardner
Eu também encontrei esse erro e gastei muito tempo tentando descobrir isso. Tentei consertar a definição de tipos escrevendo o próprio d.ts. arquivos, mas eu falhei. Então me deparei com este expressjs: typescript: Argument of type 'typeof'não é atribuível ao parâmetro do tipo' RequestHandlerParams '
Vejo muitos problemas com tipos TypeScript e Expressjs e talvez esse problema seja sério, mas importar sem usar * parece resolver o problema pelo menos com a chamada de função de uso sobrecarregada.

@natejgardner, seu problema está no Roteador Api:

você pode tentar uma solução como esta (no arquivo "./routes/api"):

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

É trabalho para mim .... aproveite :)

Isso está consertado?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

lilling picture lilling  ·  3Comentários

csharpner picture csharpner  ·  3Comentários

Loghorn picture Loghorn  ·  3Comentários

Zzzen picture Zzzen  ·  3Comentários

fasatrix picture fasatrix  ·  3Comentários