@karminski
Senior React.JS Developer

Как правильно задать объединение типов (union)?

Всем привет.
Есть следующие типы:

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 может разрастись до бесконечности.
Возможно есть более "правильный" способ?
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
TRen208
@TRen208
Вам это было нужно? Не совсем понял)

export type TFormFieldsUnion = TFormField<string> | TFormField<boolean> | TFormField<number>


const field1: TFormField<string> = {}

const field2: TFormField<number> = {}

// Array
const fields_a: TFormFieldsUnion[] = [field1, field2]
// Object
const fields_o: { [key: string]: TFormFieldsUnion } = { field1, field2 }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы