Индексные типы позволяют определить тип данных для ключей объекта, которые могут быть строками, числами, символами или определенным шаблоном строк.
{ [key: string]: Type; }
- Этот код определяет объект, у которого ключи могут быть строками, а значения - заданным типомType
. То есть, объект может содержать любые свойства с ключами типа string, и значения свойств будут иметь типType
.{ [key: number]: Type; }
- Здесь определен объект, ключами которого являются числа, а значения имеют типType
. То есть, объект может содержать любые свойства с ключами типа number, и значения свойств будут иметь типType
.{ [key: symbol]: Type; }
- В данном случае определен объект, у которого ключами выступают символы (symbol), а значения имеют типType
. Объект может содержать любые свойства с ключами типа symbol, и значения свойств будут иметь типType
.{ [key: data-${string}]: Type; }
- Здесь используется шаблон строк для определения ключей объекта. Ключи имеют форматdata-${string}
, то есть строка, начинающаяся с "data-" и за которой следует любая строка (string). Значения свойств имеют типType
. Например, ключи могут быть "data-foo", "data-bar", и так далее.
Этот подход позволяет гибко определять типы объектов с различными типами ключей и значений для удовлетворения конкретных требований в программе.