Интерфейс для динамического ключа в typescript

У меня есть такой объект, который создается методом подчеркивания _.groupBy().

myObject = {
  "key" : [{Object},{Object2},{Object3}],
  "key2" : [{Object4},{Object5},{Object6}],
  ...
}

Как я могу определить это как интерфейс с TypeScript? я не хочу просто определять его как myObject:Object = { ..., а скорее иметь для него собственный тип.

Ответ 1

Ваш объект выглядит как словарь Object массивов

interface Dic {
    [key: string]: Object[]
}

Ответ 2

Теперь в TypeScript есть выделенный тип Record:

const myObject: Record<string, object[]> = { ... }

Кроме того, рассмотрите возможность ввода ключей по возможности:

type MyKey = 'key1' | 'key2' | ...

const myObject: Record<MyKey, object[]> = { ... }

Ответ 3

Вы также можете использовать тип:

type Dic = {
    [key in string]: Object[]
}