Видеоуроки, интерактивный редактор и сохранение прогресса — бесплатно, сразу после входа.
ВойтиСоздать аккаунт — бесплатноЗакончили урок?
Войдите, чтобы отмечать прогресс
keyof User это "id" | "name", а User["id" | "name"] это number | string. Добавится в User новое поле, и его тип сам попадёт в UserValue.
Такая же конструкция была в задании 13: T[keyof T] в типе пар. Там она работала с параметром типа, здесь с конкретным типом, но смысл один: «тип любого значения этого объекта».
С массивами работает ключ number:
Это частый приём: список значений описывается один раз как массив, а тип получается из него. Тот же подход, что keyof typeof в задании 18, только для массива.
Индексный доступ можно повторять:
Удобно, когда нужен тип глубоко вложенной части большого типа, например ответа API, а отдельного имени у неё нет.