Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a type in @types/express for Express middleware functions

Right now I have this in a custom .d.ts file:

import { Request, Response, NextFunction } from 'express';
export type MiddleWareFn = (req: Request, res: Response, next: NextFunction) => void;

and I reference that file like so:

router.use('/foo', <MiddleWareFn> function(req,res,next){});

however I am wondering if Express has typings for middleware functions already?

like image 548
Alexander Mills Avatar asked Feb 28 '18 02:02

Alexander Mills


2 Answers

Yes. You need to import also RequestHandler. Check definition here

import { RequestHandler } from 'express';
like image 176
Carloluis Avatar answered Oct 02 '22 14:10

Carloluis


Here is how I'm handling it:

import type { RequestHandler } from "express";

export const myMiddleware: RequestHandler = (req, res, next) => {
  // HANDLE REQUEST
  // RESPOND OR CALL NEXT()
};
like image 23
cbdeveloper Avatar answered Oct 02 '22 15:10

cbdeveloper