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

340
Views
La propiedad 'error' no existe en el tipo '{} | usuario | error'
 type user = { id: number, token: string } type errorObject = { error: string } interface authState { user: user | {} | errorObject, } const initialState: authState = { user: {} } const error : errorObject = {"error": "hi"} initialState.user = error console.log(initialState.user.error) // Property 'error' does not exist on type '{} | user | error'.

¿Por qué este error? Tiene una propiedad de error, ¿por qué dice que no existe? Estoy confundido.

Mi objetivo era hacer que el objeto de usuario fuera cualquiera de estos tipos:

 user = {} // or user = {"id": number, "token": "1234"} // or user = {"error": "error"}
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Su tipo es bastante amplio, el compilador arroja un error porque la propiedad puede no estar presente en el parámetro.

Si está seguro de que en determinadas circunstancias existiría la propiedad de error, puede utilizar una aserción de tipo.

Ex. (initialState.user as errorObject).error

O si no está seguro de eso, puede crear su propia protección de tipo definida por el usuario, por ejemplo:

 function instanceOfErrorObject(data: user | {} | errorObject): data is errorObject { return data.hasOwnProperty("error"); }

si llama a esta función antes de intentar acceder a la propiedad de error, el compilador sabrá que es del tipo apropiado:

 const user = initialState.user; if (instanceOfErrorObject(user)) console.log(user.error);
about 4 years ago · Juan Pablo Isaza 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!