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