Напиши тип Middle Дженерики обновлено

Индексная сигнатура

Вопрос

Тип объекта с произвольными строковыми ключами и числовыми значениями (без Record).

type Counters = /* ? */;

Попробуйте сами

Напишите тип, как написали бы в коде.

Показать ответ и разбор

Коротко

Правильный тип: { [key: string]: number }. Ответ Почему так Индексная сигнатура против Record: первая допускает любые ключи, вторая - только перечисленные.

Правильный тип

{ [key: string]: number }

Разбор

Ответ

{ [key: string]: number }

Почему так

Индексная сигнатура против Record: первая допускает любые ключи, вторая - только перечисленные. Ловушка индексной сигнатуры - обращение по несуществующему ключу типизируется как number, хотя вернётся undefined; лечится флагом noUncheckedIndexedAccess.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме