Node.js 使用typescript和express时,我可以';t get res.send在我的控制器中使用显式类型,但当类型为anny时,它确实有效

Node.js 使用typescript和express时,我可以';t get res.send在我的控制器中使用显式类型,但当类型为anny时,它确实有效,node.js,typescript,express,model-view-controller,Node.js,Typescript,Express,Model View Controller,我试图在MVC配置中使用express和typescript设置一个项目,我的index.ts执行路由,并将请求和响应对象发送到适当的控制器函数,在我的例子中是home controller GetRoot函数 import { request, response } from "express" import {IHomeController} from "./IHomeController" export class HomeController implements IHomeContr

我试图在MVC配置中使用express和typescript设置一个项目,我的index.ts执行路由,并将请求和响应对象发送到适当的控制器函数,在我的例子中是home controller GetRoot函数

import { request, response } from "express"
import {IHomeController} from "./IHomeController"

export class HomeController implements IHomeController{
    GetRoot(req: Express.Request, res:Express.Response){
        res.send("please let this work");
        return;
    }
}
当我使用显式类型时,如上所示,我得到错误“类型“Response”上不存在属性“send”


但是,当我使用any时,我能够正确地使用res.send()。不确定原因。

您可以将导入和类型声明更改为以下内容

import { Request, Response } from "express"
import {IHomeController} from "./IHomeController"

export class HomeController implements IHomeController{
    GetRoot(req: Request, res: Response){
        res.send("please let this work");
        return;
    }
}
还是这个

import * as express from "express"
import {IHomeController} from "./IHomeController"

export class HomeController implements IHomeController{
    GetRoot(req: express.Request, res: express.Response){
        res.send("please let this work");
        return;
    }
}