@rodrigo_renner
Индексные типы в TypeScript позволяют создавать типы, которые могут сопоставляться с различными сигнатурами свойств, например, свойствами объекта или элементами массива, используя индексы вместо конкретных имен свойств. Это облегчает работу с динамическими структурами данных, такими как JSON-объекты, и позволяет типизировать их более точно.
Индексные типы обозначаются квадратными скобками [], которые содержат тип индекса. Например, тип { [key: string]: number } описывает объект, в котором все свойства имеют строковые имена и числовые значения.
Индексы могут быть любым типом, который может быть преобразован в строку или числовой тип, такими как строки, числа, enum или symbol.
Пример использования индексных типов:
1 2 3 4 5 6 7 8 |
interface Dictionary<T> { [key: string]: T; } const dict: Dictionary<number> = { foo: 42, bar: 69, }; |
В данном примере интерфейс Dictionary<T>
определяет тип для объекта со свойствами, имена которых можно привести к типу string
, и значениями типа T
. Затем создается объект dict
, в котором ключами являются строки foo
и bar
, а значениями - числа 42 и 69 соответственно. Таким образом, dict
соответствует типу Dictionary<number>
.