TGViewer
WebDev+ | Веб-разработка WebDev+ | Веб-разработка @webdev_plus · 7.91K subscribers
Post #1514 571
Выводи типы из значений в TypeScript.
То есть не дублируй руками union-типы вроде:

type Role = "system_admin" | "content_editor" | "guest_viewer";


Лучше задай объект один раз, а тип получи из него:
type ValueOf<T extends Record<PropertyKey, unknown>> = T[keyof T];

const USER_ROLE = {
Admin: "system_admin",
Editor: "content_editor",
Viewer: "guest_viewer",
} as const satisfies Record<string, string>;

type Role = ValueOf<typeof USER_ROLE>;


Теперь Role автоматически равен:
"system_admin" | "content_editor" | "guest_viewer"


Если потом добавишь новую роль в USER_ROLE, тип обновится сам.

@WebDev_Plus
More from @webdev_plus
  1. Oct 5, 2026Работает!? Не трогай 🎯
  2. Oct 5, 2026Фронтендер психанул и написал крестики-нолики без HTML и JavaScript Вся игра работает прак…
  3. Oct 4, 2026Годный генератор CSS-паттернов для ваших проектов Тут можно быстро собирать крутые CSS-пат…
  4. Oct 4, 2026Таблица Менделеева для HTML Бесплатная интерактивная шпаргалка: теги по категориям, поиск,…
  5. Oct 3, 2026Как посмотреть SQL-запрос в Laravel Eloquent? Используйте метод toSql(), чтобы увидеть SQL…
  6. Oct 3, 2026Совет по Laravel: доступ к вложенным массивам через точечную нотацию Используйте dot notat…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →