Robert Brax
Robert Brax

Reputation: 7318

Typescript error TS2345 on regular express code

I have express typings installed with typescript 1.8.10 and this code:

app.use( function( err, req, res, next ) {
    if ( err.code !== 'EBADCSRFTOKEN' ) {
        return next( err )
    }

    // handle CSRF token errors here
    res.status( 403 )
    res.send( 'form tampered with' )
} )

which is a middleware code to catch csrf errors produces these errors:

Error:(130, 10) TS2345: Argument of type '(err: Request, req: Response, res: NextFunction, next: any) => any' is not assignable to parameter of type 'string | RegExp | (string | RegExp)[]'. Type '(err: Request, req: Response, res: NextFunction, next: any) => any' is not assignable to type '(string | RegExp)[]'. Property '[Symbol.iterator]' is missing in type '(err: Request, req: Response, res: NextFunction, next: any) => any'.

Error:(131, 14) TS2339: Property 'code' does not exist on type 'Request'.

Error:(136, 9) TS2339: Property 'status' does not exist on type 'NextFunction'.

Error:(137, 9) TS2339: Property 'send' does not exist on type 'NextFunction'.

How to prevent this ?

Upvotes: 5

Views: 553

Answers (1)

Janac Meena
Janac Meena

Reputation: 3567

This looks like a an issue with your types, so make sure you run npm install to ensure you have all the correct dependencies.

Upvotes: 0

Related Questions