Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

417
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!