Подходит Record<string, Man> или эквивалентная строковая index signature. Каждому произвольному строковому id сопоставляется объект Man.
Определение типизации для структуры объекта
Подходит Record<string, Man> или эквивалентная строковая index signature. Каждому произвольному строковому id сопоставляется объект Man.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Требуется объявить тип, который описывает объект mansMap. Пример использования:
const mansMap: ManMapType = {
'id1': {
name: 'Karl',
age: 18;
},
'id2': {
name: 'Karl',
age: 18;
},
...
}
type Man = {
name: string;
age: Age;
}
type ManMapType =
Опишите тип ManMapType, учитывая, что ключи – произвольные строки‑идентификаторы, а значениями являются объекты типа Man.
Ответ
Подходит Record<string, Man> или эквивалентная строковая index signature. Каждому произвольному строковому id сопоставляется объект Man.
type Age = number;
type Man = { name: string; age: Age };
type ManMapType = Record<string, Man>;
// Альтернатива: type ManMapType = { [id: string]: Man };
Age в исходнике не определён, поэтому здесь выбран number; допустимость возраста проверяется отдельно. В литералах объектов после age:18 должны быть запятые, а не точки с запятой. Record не гарантирует существование любого ключа во время выполнения: включайте noUncheckedIndexedAccess либо явно возвращайте Man | undefined при поиске.