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; }
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"