TypeScript Express Error Function

The function itself has the following signature (taken from DefinitelyTyped):

export type ErrorRequestHandler = (err: any, req: Request, res: Response, next: NextFunction) => any;

So you can either declare the function as a variable of type ErrorRequestHandler or type the parameters according to that definition.

Note: the typings for “express-serve-static-core” are imported and re-exported by the typings for “express”, which was where I looked for the above definition.

import type { ErrorRequestHandler } from "express";
const errorHandler: ErrorRequestHandler = (err, req, res, next) => {};

app.use(errorHandler);

Regarding your second question related to implicit any, it is the “implicit” part that is causing the problem, If you explicitly type as any then there won’t be any error (but there won’t be any typings either; consider using unknown instead).

You can also disable noImplicitAny in your compiler config but I wouldn’t recommend it personally, as it protects you from several classes of bugs.

Leave a Comment