如何声明默认导出函数的类型

时间:2019-03-25 15:27:03

标签: typescript express

我的代码库中有多个表达中间件,每个中间件都在各自的文件中。我想将它们全部输入为 while self.root: ,而不是键入每个参数本身。

我的文件基本上是这样的:

express.Handler

但是export default function exampleMiddleware (req, res, next) { res.send(req.body.helloWorld) } reqres都被视为next,因为TypeScript不知道该函数应该是any 。正确的方法是什么?

我不是不是想要将其更改为此,因为它太冗长了:

express.Handler

我尝试过:

  • import * as express from 'express' export default function exampleMiddleware ( req: express.Request, res: express.Response, next: express.NextFunction ): void { res.send(req.body.helloWorld) } ,但显示“过载签名必须全部导出或不导出”
  • 添加了declare function exampleMiddleware: express.Handler,但显示“合并的声明'exampleMiddleware'不能包含默认的导出声明。”

1 个答案:

答案 0 :(得分:0)

如果我避免默认导出(例如@spender注释),那么我确实可以使用:

export const exampleMiddleware: express.Handler = function exampleMiddleware (
  req, 
  res, 
  next
) {
  res.send(req.body.helloWorld)
}

我猜哪一个足以满足我的目的。