filmov
tv
Что такое keyof typeof в TypeScript? | Основы TypeScript #frontend #javascript #react #typescript
Показать описание
Что такое keyof typeof в TypeScript?
Если вы посмотрели мои последние ООООЧЕНЬ интересные ролики, где я рассказывал про typeof и keyof в typescript, вы наверняка задаётесь вопросом, а где это можно применить?
Я вам с удовольствием покажу и расскажу.
Предположим у нас есть объект с ролями пользователя
const roles = {
ADMIN: 'admin',
SUPERADMIN: 'superadmin',
USER: 'user',
} as const;
Мы можем получить тип объекта и ключи этого объекта используя typeof и keyof
const roles = {
ADMIN: 'admin',
SUPERADMIN: 'superadmin',
USER: 'user',
CUSTOMER: 'customer',
} as const;
type RoleType = typeof roles;
type RoleKeys = keyof RoleType;
если мы добавим новую роль, она появится и в RoleKeys
А можем вывести тип Role в котором будут значения полей roles.
type Role = (typeof roles)[keyof typeof roles];
const newUser: Role = 'zombie'
Вааау, круто! Ставьте лайки и подписывайтесь на канал, если вы также в шоке как удобно работать с тайпскриптом!
#reactjs
#javascript
#typescript
#usestate
#useeffect
#frontend
Если вы посмотрели мои последние ООООЧЕНЬ интересные ролики, где я рассказывал про typeof и keyof в typescript, вы наверняка задаётесь вопросом, а где это можно применить?
Я вам с удовольствием покажу и расскажу.
Предположим у нас есть объект с ролями пользователя
const roles = {
ADMIN: 'admin',
SUPERADMIN: 'superadmin',
USER: 'user',
} as const;
Мы можем получить тип объекта и ключи этого объекта используя typeof и keyof
const roles = {
ADMIN: 'admin',
SUPERADMIN: 'superadmin',
USER: 'user',
CUSTOMER: 'customer',
} as const;
type RoleType = typeof roles;
type RoleKeys = keyof RoleType;
если мы добавим новую роль, она появится и в RoleKeys
А можем вывести тип Role в котором будут значения полей roles.
type Role = (typeof roles)[keyof typeof roles];
const newUser: Role = 'zombie'
Вааау, круто! Ставьте лайки и подписывайтесь на канал, если вы также в шоке как удобно работать с тайпскриптом!
#reactjs
#javascript
#typescript
#usestate
#useeffect
#frontend