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