Búsqueda de sitios web

Error de Typescript TS2345 en código de expresiones regulares


Tengo typings de express instalados con TypeScript 1.8.10 y este código:

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' )
} )

que es un código middleware para capturar errores de CSRF produce estos errores:

Error:(130, 10) TS2345: El argumento de tipo '(err: Request, req: Response, res: NextFunction, next: any) => any' no se puede asignar al parámetro de tipo 'string | RegExp | (string | RegExp)[]'. El tipo '(err: Request, req: Response, res: NextFunction, next: any) => any' no se puede asignar al tipo '(string | RegExp)[]'. La propiedad '[Symbol.iterator]' falta en el tipo '(err: Request, req: Response, res: NextFunction, next: any) => any'.

Error:(131, 14) TS2339: La propiedad 'code' no existe en el tipo 'Request'.

Error:(136, 9) TS2339: La propiedad 'status' no existe en el tipo 'NextFunction'.

Error:(137, 9) TS2339: La propiedad 'send' no existe en el tipo 'NextFunction'.

¿Cómo prevenir esto?

Respuesta #1

Esto parece un problema con tus tipos, así que asegúrate de ejecutar npm install para asegurarte de que tienes todas las dependencias correctas.

Artículos relacionados