带有打字稿的uisng multer:类型“ Request”上没有属性“文件” .ts(2339)

时间:2019-10-15 11:27:26

标签: node.js typescript multer

我正在使用https://www.npmjs.com/package/multer库,而我的node.js应用是用打字稿编写的。

我的代码中出现以下打字错误。

  

类型为“请求”的属性“文件”不存在。ts(2339)

    public document = async (req: Request, res: Response): Promise<any> => {
        const documentFile = req.file;
    }

我该如何解决。该请求是快速的Request对象,但中间件将.file附加到该Request对象中。但是,由于类型请求接口最初不正确包含文件,因此它不知道

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

也许我们可以扩展Request

interface MulterRequest extends Request {
    file: any;
}

 public document = async (req: Request, res: Response): Promise<any> => {
   const documentFile  = (req as MulterRequest).file;
 }

或者可能像这样的代码

interface MulterRequest extends Request {
    file: any;
}

 public document = async (req: MulterRequest , res: Response): Promise<any> => {
   const documentFile  = req.file;
 }