Сегодня хочу рассказать про Utility Types. В начале своей карьеры я почти не использовала их и не понимала, почему про них так часто спрашивают на собеседованиях.
Но спустя время и набравшись больше опыта, поняла, что это реально удобно!
🔹Utility Types – что это такое?
Это набор встроенных типов, они помогают:
- Избегать дублирования кода
- Делать типы более гибкими
- Упрощать сложные операции с типами
🔹Основные Utility Types
Partial<T>
Делает все свойства типа T необязательными.
Required<T>
Противоположность Partial — делает все поля обязательными.
Readonly<T>
Запрещает изменять свойства объекта.
Pick<T, K>
Создаёт тип, выбирая набор свойств K
interface User {
name: string;
age: number;
}
type UserName = Pick<User, "name">;
// { name: string }Omit<T, K>
Создаёт тип, выбирая все свойства из T и затем удаляя K
interface User {
name: string;
age: number;
}
type UserName = Omit<User, "name">;
// { age: number }Record<Keys, Type>
Создаёт тип объекта, ключи свойств которого — K и значения свойств — T
type PageUrls = Record<string, string>;
// { [key: string]: string }
❄️ Для работы я в основном использую Record, Omit и Pick - они покрывают большинство повседневных задач
#typeScript