TypeScript Academy · Урок

Pick и Omit: выбор свойств

Создавайте подтипы, включая или исключая ключи

Урок 2 из 413 шагов

«Pick и Omit: выбор свойств» — бесплатный урок TypeScript Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения TypeScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс TypeScript Academy содержит 4 уроков всего.

Добро пожаловать

Pick создаёт тип только с указанными свойствами. Omit создаёт тип без указанных свойств. Это взаимодополняющие инструменты для формирования типов объектов.

Pick<T, K>

Сохраните из T только перечисленные ключи.
interface User { id: number; name: string; email: string; role: string; }
type PublicUser = Pick<User, 'id' | 'name'>;
// { id: number; name: string }

Omit<T, K>

Удалите из T перечисленные ключи.
type UserWithoutRole = Omit<User, 'role'>;
// { id: number; name: string; email: string }

Pick для моделей представления

Используйте Pick, чтобы создать модель представления из полной модели данных для отображения.
type UserCard = Pick<User, 'name' | 'email'>;

Omit для DTO создания

Используйте Omit, чтобы создать тип входных данных без автоматически создаваемых полей.
interface Post { id: number; title: string; content: string; createdAt: Date; }
type CreatePost = Omit<Post, 'id' | 'createdAt'>;
// { title: string; content: string }

Как реализован Pick

Pick использует отображаемый тип, ограниченный ключами K.
type Pick<T, K extends keyof T> = { [P in K]: T[P] };

Как реализован Omit

Omit объединяет Pick с Exclude, чтобы выбрать все ключи, кроме исключённых.
type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;

Pick с объединением ключей

Передайте в Pick объединение литералов ключей.
type MinimalUser = Pick<User, 'id' | 'email'>;

Omit с несколькими ключами

Удаляйте несколько ключей одновременно с помощью Omit.
type SafeUser = Omit<User, 'password' | 'token' | 'internalId'>;

Pick и подмножество интерфейса

Pick можно повторно использовать для разных типов. Определение нового подмножества интерфейса выполняется один раз. Используйте Pick, если исходный тип может измениться.

Сочетание Pick, Omit и Partial

Объединяйте служебные типы, чтобы создавать сложные формы обновления.
type UpdatePost = Partial<Omit<Post, 'id' | 'createdAt'>>;
// Can update title and content, both optional

Быстрая проверка

Каков результат `Pick`, если задан `interface User { id: number; name: string; email: string }`?

Итоги

Pick сохраняет только перечисленные свойства. Omit удаляет перечисленные свойства. Используйте их для создания моделей представления, DTO и типов обновления без дублирования определений интерфейсов.
Можно начать бесплатно

Изучай TypeScript с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
101
Уроки
352

Часто задаваемые вопросы

Урок «Pick и Omit: выбор свойств» бесплатный?

Да — полный текст урока «Pick и Omit: выбор свойств» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс TypeScript Academy, подпишись на CoddyKit PRO. Курс TypeScript Academy содержит 4 уроков всего.

Чему я научусь в уроке «Pick и Omit: выбор свойств»?

Создавайте подтипы, включая или исключая ключи Ты практикуешь TypeScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать TypeScript Academy?

Предыдущий опыт не требуется. TypeScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Pick и Omit: выбор свойств»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке TypeScript Academy?

Да. Каждый урок TypeScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Partial и Required: переключение обязательности
  2. Pick и Omit: выбор свойств
  3. Record: сопоставление ключей с типами значений
  4. Readonly, Exclude, Extract и NonNullable
← Назад к TypeScript Academy