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.