MyPick строится mapped type по выбранным ключам: K ограничивают keyof T, а тип каждого свойства берут через T[P].
Напишите кастомный утилитарный тип MyPick — аналог TypeScript Pick, который выбирает из интерфейса только свойства с ключами, переданными вторым параметром.
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; тип ничего не удаляет из объекта во время выполнения.