Утилитарные типы в TypeScript — это инструменты, которые позволяют модифицировать существующие типы для упрощения разработки и улучшения читаемости кода. Рассмотрим три наиболее часто используемых утилитарных типа: Pick
, Omit
и Partial
.
1. Partial
Что делает `Partial`?
`Partial` превращает все свойства типа в необязательные.Синтаксис
```typescript PartialПример использования
```typescript interface User { id: number; name: string; email: string; }const updateUser = (user: Partial
updateUser({ name: "Alice" }); // Допустимо, так как все свойства стали необязательными
text
<h3 id="когда-использовать">Когда использовать?</h3>
- Когда нужно работать с частичными данными, например, при обновлении объектов.
---
<h2 id="2-pick">2. Pick</h2>
<h3 id="что-делает-pick">Что делает `Pick`?</h3>
`Pick` выбирает только указанные свойства из типа.
<h3 id="синтаксис">Синтаксис</h3>
```typescript
Pick<Type, Keys>
Пример использования
```typescript interface User { id: number; name: string; email: string; }type UserPreview = Pick<User, "id" | "name">;
const user: UserPreview = { id: 1, name: "Alice", };
text
<h3 id="когда-использовать">Когда использовать?</h3>
- Когда нужно создать новый тип, содержащий только определённые свойства из исходного.
---
<h2 id="3-omit">3. Omit</h2>
<h3 id="что-делает-omit">Что делает `Omit`?</h3>
`Omit` удаляет указанные свойства из типа.
<h3 id="синтаксис">Синтаксис</h3>
```typescript
Omit<Type, Keys>
Пример использования
```typescript interface User { id: number; name: string; email: string; }type UserWithoutEmail = Omit<User, "email">;
const user: UserWithoutEmail = { id: 1, name: "Alice", };
text
<h3 id="когда-использовать">Когда использовать?</h3>
- Когда нужно создать тип, исключив ненужные свойства из исходного.
---
<h2 id="сравнение-утилитарных-типов">Сравнение утилитарных типов</h2>
| Тип | Описание | Пример использования |
|--------|------------------------------------------------------|--------------------------------------------|
| `Partial` | Делает все свойства необязательными | Обновление данных частично |
| `Pick` | Выбирает только указанные свойства | Создание упрощённого представления объекта |
| `Omit` | Исключает указанные свойства | Исключение лишних данных |
---
<h2 id="итоговые-вопросы-для-подготовки">Итоговые вопросы для подготовки</h2>
1. Как `Partial` преобразует типы?
2. Чем `Pick` отличается от `Omit`?
3. Когда лучше использовать `Omit`, а когда `Pick`?
4. Какие преимущества дают утилитарные типы при работе с объектами?
5. Можете ли вы привести пример использования всех трёх типов в одном проекте?
**Совет:** Используйте утилитарные типы, чтобы сделать код более читаемым и избежать дублирования типов в проектах.