Для объектного типа { age: Age } используйте Pick<Man, 'age'>. Выражение Man['age'] извлекает только тип значения Age, без оболочки объекта.
Конвертация типа Man в тип AgeType
Для объектного типа { age: Age } используйте Pick<Man, 'age'>. Выражение Man['age'] извлекает только тип значения Age, без оболочки объекта.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо преобразовать тип Man так, чтобы он соответствовал объявленному типу AgeType.
type Man = {
name: string;
age: Age;
}
// { age: Age; }
// type AgeType =
Ответ
Для объектного типа { age: Age } используйте Pick<Man, 'age'>. Выражение Man['age'] извлекает только тип значения Age, без оболочки объекта.
type AgeType = Pick<Man, 'age'>;
// Эквивалентно:
type AnotherAgeType = { age: Man['age'] };
Pick выбирает указанные свойства исходного типа и сохраняет их модификаторы. В условии тип Age должен быть объявлен отдельно; подменять его числом без знания контракта не требуется. Это преобразование типов, а не создание нового объекта во время выполнения.