Задать вопрос
@lyolkinn

Как типизировать связанные массивы объектов?

Есть 2 объекта, один определяет столбцы, другой строки таблицы. Как их типизировать, когда ключи объекта строк (rows) зависят от значений объекта столбцов (columns)?

const columns = [
  {
    key: "name",
    label: "NAME",
  },
  {
    key: "role",
    label: "ROLE",
  },
  {
    key: "status",
    label: "STATUS",
  },
];
const rows = [
  {
    key: "1",
    name: "Tony Reichert",
    role: "CEO",
    status: "Active",
  },
  {
    key: "2",
    name: "Zoey Lang",
    role: "Technical Lead",
    status: "Paused",
  },
//...
];
  • Вопрос задан
  • 73 просмотра
Подписаться 2 Средний Комментировать
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
const columns = [
  {
    key: "name",
    label: "NAME",
  },
  {
    key: "role",
    label: "ROLE",
  },
  {
    key: "status",
    label: "STATUS",
  },
] as const;

type ColumnsType = typeof columns;

const rows: Array<Record<ColumnsType[number]['key'], string> & {key: string}> = [
  {
    key: "1",
    name: "Tony Reichert",
    role: "CEO",
    status: "Active",
  },
  {
    key: "2",
    name: "Zoey Lang",
    role: "Technical Lead",
    status: "Paused",
  },
];


ссылка

здесь предполагается, что все значения - строки. Могут ли быть другие типы значений?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы