Напиши тип Junior Утилитарные типы спрашивают часто обновлено
Тип результата Object.keys
Вопрос
Какой тип получится? Впишите тип.
const user = { id: 1, name: 'Аня' };
const keys = Object.keys(user); // keys: /* ? */
Попробуйте сами
Напишите тип, как написали бы в коде.
Показать ответ и разбор
Коротко
Правильный тип: string[]. Object.keys всегда возвращает string[], а не ('id' 'name')[].
Правильный тип
string[]
Разбор
Object.keys всегда возвращает string[], а не ('id' | 'name')[]. Причина в структурной типизации: значение типа { id: number; name: string } в рантайме может содержать и другие поля (объект подтипа), и обещать точный набор ключей было бы неправдой. Если вы уверены в объекте, пишут Object.keys(user) as (keyof typeof user)[], понимая риск.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.