Можно ли проверить тип в определении типа в машинописном тексте

#angular #typescript

Вопрос:

У меня есть класс для возврата реактивных форм в виде форм с доступными элементами управления, перечисленными в IntelliSense. Это прекрасно работает для FormControls, но я хотел бы, чтобы группы форм, которые являются частью запрашиваемой родительской группы форм, возвращались как TypedFormGrouplt;T[ключ]gt;, надеюсь, это имеет смысл, есть ли способ, которым я могу получить какое-либо утверждение типа lt;T[ключ]gt; controls!: { [key in keyof T]: (AbstractControl amp; T[key] is string) | TypedFormGrouplt;T[key]gt;} ?

 export class TypedFormGrouplt;Tgt; extends FormGroup {  controls!: { [key in keyof T]: AbstractControl }   constructor(controls: { [key in keyof T]: AbstractControl }) {  super(controls);  } }  

Ответ №1:

Нашел решение моей проблемы

 export interface TypedFormGrouplt;Tgt; extends FormGroup {  controls: { [key in keyof T]: T[key] extends (string | number | boolean) ? AbstractControl : TypedFormGrouplt;T[key]gt; } }