Перейти к основному содержимому

TS: Индексные типы

Индексные типы позволяют определить тип данных для ключей объекта, которые могут быть строками, числами, символами или определенным шаблоном строк.

  1. { [key: string]: Type; } - Этот код определяет объект, у которого ключи могут быть строками, а значения - заданным типом Type. То есть, объект может содержать любые свойства с ключами типа string, и значения свойств будут иметь тип Type.

  2. { [key: number]: Type; } - Здесь определен объект, ключами которого являются числа, а значения имеют тип Type. То есть, объект может содержать любые свойства с ключами типа number, и значения свойств будут иметь тип Type.

  3. { [key: symbol]: Type; } - В данном случае определен объект, у которого ключами выступают символы (symbol), а значения имеют тип Type. Объект может содержать любые свойства с ключами типа symbol, и значения свойств будут иметь тип Type.

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

Этот подход позволяет гибко определять типы объектов с различными типами ключей и значений для удовлетворения конкретных требований в программе.