Напишите кастомный утилитарный тип MyPick — аналог TypeScript Pick, который выбирает из интерфейса только свойства с ключами, переданными вторым параметром.

MyPick строится mapped type по выбранным ключам: K ограничивают keyof T, а тип каждого свойства берут через T[P].

Короткий ответ

Что ответить на собеседовании

MyPick строится mapped type по выбранным ключам: K ограничивают keyof T, а тип каждого свойства берут через T[P].

Подробный разбор

Ответ с пояснениями

MyPick строится mapped type по выбранным ключам: K ограничивают keyof T, а тип каждого свойства берут через T[P].

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

type User = { readonly id: number; name: string; age?: number };
type Brief = MyPick<User, 'id' | 'age'>;

В результате сохраняются readonly и optional-модификаторы выбранных свойств. Несуществующий ключ не проходит ограничение K; тип ничего не удаляет из объекта во время выполнения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее