Всем привет.
Есть следующие типы:
export type TFormFieldValue = string | number | boolean;
export interface TFormField<T extends TFormFieldValue> {
value?: T;
defaultValue?: T;
emptyValue?: T;
onChange?: (value: T) => void;
}
export type TFormFieldsUnion =
| TFormField<string>
| TFormField<boolean>
| TFormField<number>
и соответственно код:
const field1: TFormField<string> = {
...
}
const field2: TFormField<number> = {
...
}
const fields: TFormFieldsUnion = {
field1,
field2,
...
}
Как правильно задать объединение типов? (если я правильно вещи называю)
Меня смущает, что со временем TFormFieldsUnion может разрастись до бесконечности.
Возможно есть более "правильный" способ?