Вопрос проверяет знание utility types и умение собирать минимально необходимые типы.
Pick позволяет создать новый тип, включив только выбранные поля из существующего. Это противоположность Omit. Он полезен, когда нужен “узкий” тип для конкретного сценария. Исходный тип при этом не изменяется.
Pick<T, K> — utility type, который формирует тип из T, содержащий только свойства K.
type User = {
id: number;
name: string;
email: string;
};
type UserPreview = Pick<User, 'id' | 'name'>;
Списки и превью
Частичные ответы API
Оптимизация пропсов компонентов
Явное ограничение доступных данных
Pick vs дублированиене нужно описывать поля заново
меньше расхождений при изменении базового типа
лучше поддерживаемость
Pick помогает явно выразить, какая часть данных реально нужна, и делает типы более читаемыми и устойчивыми к изменениям.