Интерфейс ассоциативного массива объекта в TypeScript

у меня есть такой объект:

var obj = {
    key1: "apple",
    key2: true,
    key3: 123,
    .
    .
    .
    key{n}: ...
}

Так obj может содержать любое количество именованных ключей, но все значения должны быть либо string, bool, либо number.

как объявить тип obj как интерфейс в TypeScript? Могу ли я объявить ассоциативный массив (или вариативный кортеж) типа объединения или что-то подобное?

1 ответов


Да, вы можете сделать это:

interface MyType {
    [key: string]: string | boolean | number;
}

var obj: MyType = {
    key1: "apple",
    key2: true,
    key3: 123
};