使用打字稿和表达时,我无法获得res.send以在控制器中使用显式类型,但是当类型为anny时它确实可以工作

问题描述 投票:0回答:1

我正在尝试在MVC配置中使用express和typescript来建立一个项目,我的index.ts进行路由并将请求和响应对象发送到适当的控制器函数,在我的情况下是家庭控制器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“。”

但是,当我使用任何代码时,我都可以正确使用res.send()。不知道为什么。

node.js typescript express model-view-controller
1个回答
0
投票
您可以将导入内容和类型声明更改为以下内容

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

© www.soinside.com 2019 - 2024. All rights reserved.