ValueOfВ TypeScript из коробки есть утилита
keyof, которая достаёт все ключи объекта в виде Union-типа. Но встроенной утилиты для получения значений нет.Чтобы не писать это каждый раз вручную, создаётся простой и универсальный дженерик
ValueOf:// Дженерик для получения всех типов значений объекта / интерфейса / типа
type ValueOf<T extends Record<string, unknown>> = T[keyof T];
Как это работает:
1)
extends Record<string, unknown> — ограничивает входящий тип T, разрешая передавать только объекты.2)
keyof T — получает Union всех ключей объекта.3)
T[keyof T] — возвращает Union всех значений, соответствующих этим ключам.