PassFront
  1. PassFront
  2. База знаний
  3. Utility Types

Что такое Pick в TypeScript?

Utility Types

`Pick<T, K>` создаёт новый тип, взяв из T только перечисленные ключи K.

interface User {
  id: string;
  name: string;
  email: string;
  password: string;
}

type PublicUser = Pick<User, 'id' | 'name'>;
// { id: string; name: string }

Как устроен

type Pick<T, K extends keyof T> = { [P in K]: T[P] };

Ограничение K extends keyof T не даёт указать несуществующий ключ.

Где применяют

  • данные для отображения без лишних полей;
  • props компонента, которые берут часть полей сущности;
  • узкие типы для функций, которым не нужен весь объект.

Pick и Omit

Omit<T, K> делает обратное — убирает ключи. Pick удобнее, когда нужно мало полей, Omit — когда нужно почти всё.

Коротко для собеседования

Pick<T, K> оставляет в типе только указанные ключи; противоположность — Omit.

Подробнее: TypeScript — Utility Types

Другие вопросы раздела