Как типизировать объект у которого ключи являются строками?

В TypeScript существует несколько способов типизировать объекты, у которых ключи являются строками. Рассмотрим несколько вариантов.

Первый способ - использование типа Record:

type MyObject = Record<string, number>;

Здесь MyObject - это тип объекта, ключи которого являются строками, а значения - числами. Вы можете заменить number на любой другой тип, который вам необходим.

Второй способ - использование интерфейса и индексной сигнатуры:

interface MyObject {
  [key: string]: number;
}

Такая индексная сигнатура позволяет определить тип объекта, у которого ключи будут строками, а значения - числами. Опять же, вы можете заменить number на другой нужный вам тип.

Третий способ - использование типа Record вместе с объединением типов для различных ключей:

type MyObject = Record<'key1' | 'key2' | 'key3', number>;

В этом примере объект типизирован так, что он содержит только три определенных ключа (key1, key2 и key3), и все значения - числового типа.

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