Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

431
Vistas
Error de mecanografiado al agregar la propiedad al objeto de error "La propiedad... no existe en el tipo 'Error'"

Estoy tratando de pasar a mecanografiado con mi aplicación Node/Express. Anteriormente mi código era:

 //app.js const error = new Error('Not Found'); error.status = 404;

Cuando intento esto:

 //app.ts const error = new Error('Not Found'); error.status = 404; // Property 'status' does not exist on type 'Error'.ts(2339)

Entiendo de la documentación de developer.mozilla.org que el constructor de errores tiene los siguientes parámetros opcionales: message , options , nombre de fileName , número de lineNumber , así que supongo que status no debería permitirse. Creo que lo copié de un tutorial de YouTube, así que supongo que en realidad no es una buena práctica.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

TypeScript no permite agregar propiedades desconocidas. Hay formas de definir objetos con claves arbitrarias (por ejemplo, Record ).

En este caso, podría crear su propia subclase para Error que incluye la propiedad de status .

 class StatusError extends Error { status: number | undefined; } const e = new StatusError('Not found'); e.status = 404;

También puede agregarlo al constructor, luego puede eliminar con confianza el undefined .

 class StatusError extends Error { constructor(public status: number, message?: string) { super(message) } } const e = new StatusError(404, 'Not found');
over 4 years ago · Santiago Trujillo Denunciar

0

Encontré en la documentación de expressjs.com que hay una sección sobre "¿Cómo manejo las respuestas 404?", donde proporcionan este ejemplo:

 app.use(function (req, res, next) { res.status(404).send("Sorry can't find that!") })

Así que produje esto y detuvo el error:

 import express, {NextFunction, Request, Response} from "express"; const app = express(); ... app.use((req: Request, res: Response, next: NextFunction) => { res.status(404).send("Sorry can't find that!"); }); export { app };
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda