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

291
Views
¿Cómo referir una interfaz que se usa antes de que se definiera?

Estoy definiendo interfaces de TypeScript y aterricé en una situación en la que necesito definir una interfaz circular.

P.ej. ISchool have IStudent e IStudent have ISchool , el problema es que la interface ISchool {} tiene IStudent que se usa antes de definirse. Además, no puedo definir interface IStudent antes porque IStudent has ISchool . ¿Cómo se puede manejar esta situación?

 interface ISchool { id: string; name: string; students: IStudent[]; } interface IStudent { id: string; name: string; school: ISchool; }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Mejor no tener dependencias circulares en general. Si crea una escuela con estudiantes, los estudiantes contienen una escuela que también contiene estudiantes que también contiene una escuela, etc. Es por eso que le recomiendo que reescriba su código para que su interfaz IStudent haga referencia a las escuelas con su identificación.

 export interface ISchool { id: string; name: string; students: IStudent[]; } export interface IStudent { id: string; name: string; school: string; }

Ahora puede pasar la identificación de la escuela a IStudent para que su interfaz IStudent aún esté vinculada con su interfaz ISchool.

O puede deshabilitar la regla eslint agregando esto a su .eslintrc.json. Porque después de todo, es solo un error de pelusa y javascript permite casi todo.

 "no-use-before-define": "off"
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!