Express.js/Typescript:错误 TS2339:“响应”类型上不存在属性“发送”

Sea*_*ysa 9 node.js express typescript

我在 Phpstorm 2019.3 中看到了这个,在 .send() 下有一个红色的棉绒

// package.json
  "dependencies": {
    "express": "^4.17.1"
  },
  "devDependencies": {
    "@types/express": "^4.17.2",
    "tslint": "^5.12.0",
    "typescript": "^3.2.2"
  },

// index.ts
const express = require("express")();

express.get('/', (req: Request, res: Response): void => {
 res.send('Express App Running') // TS2339: Property 'send' does not exist on type 'Response'
});
Run Code Online (Sandbox Code Playgroud)

这些是错误的类型定义还是其他什么东西在起作用?

Mát*_*osi 23

回调中的RequestResponse类型可能不是 Express 提供的类型。
确保导入正确的类型:

import express, { Request, Response } from "express";

const app = express();

app.get("/", (req: Request, res: Response) => {
  res.send("foo");
});
Run Code Online (Sandbox Code Playgroud)

  • 我正在这样做,但在添加中间件后仍然遇到同样的问题。我注意到通常它从“@types/express-serve-static-core”导入“Request”定义,当发生此错误时,它从“@types/express”导入 (5认同)