Что такое индексные типы (index types) в TypeScript?

Пользователь

от rodrigo_renner , в категории: Компьютерные технологии , год назад

Что такое индексные типы (index types) в TypeScript?

Facebook Vk Ok Twitter Telegram Whatsapp

1 ответ

Пользователь

от meda.dach , год назад

@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>.