Определение типа AgeType на основе типа Man

Используйте Pick<Man, 'age'>: он создаёт объектный тип только с выбранным свойством. Man['age'] дал бы сам тип Age, а не объект с полем age.

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

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

Используйте Pick<Man, 'age'>: он создаёт объектный тип только с выбранным свойством. Man['age'] дал бы сам тип Age, а не объект с полем age.

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

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

Условие

Требуется, используя уже объявленный тип Man, создать новый тип AgeType, который будет представлять объект с единственным полем age типа Age.

//Node.js
type Man = {
    name: string;
    age: Age;
}

// { age: Age; }
// type AgeType = 

Ответ

Используйте Pick<Man, 'age'>: он создаёт объектный тип только с выбранным свойством. Man['age'] дал бы сам тип Age, а не объект с полем age.

type AgeType = Pick<Man, 'age'>;
// Эквивалентно для показанного Man:
type AgeObject = { age: Man['age'] };

Pick сохраняет тип выбранного поля и его модификаторы, если они есть в исходнике. Age должен быть определён отдельно: в условии его объявление не приведено. Это операция над типами TypeScript, она не создаёт объект в runtime и не копирует данные экземпляра Man.

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

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

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

Подробнее