Псевдоним типа: ResultFor<T>
type ResultFor<T> = T extends NoulQuestion ? NoulResponse : T extends ScoreQuestion<infer S> ? ScoreResponse<S> : T extends ChoiceQuestion<infer E> ? ChoiceResponse<E> : never;
Тип ответа для вопроса, сохраняющий его ключи criteria.
Параметры типа
T
T extends Question