Theres a lot going on here, but my issue is (at least to me) rather essential. The component has an array of fields, wrapped in a BehaviorSubject fields$. I'm going to omit the specific implementation, but the interface for Field looks like this:
export default interface Field {
value: string
state: FieldState,
correctAnswer : boolean
state$ : Observable<FieldState>
}
Its essentially a plain old object, with the exception of the state$ attribute which is an observable that holds an enum of typeFieldState:
export enum FieldState{
NONE,
EVALUATING,
TRUE,
FALSE
}