TypeScript 中关联对象数组的接口

Interface for associative object array in TypeScript

我有一个这样的对象:

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

因此 obj 可以包含任意数量的命名键,但值必须全部是字符串、布尔值或数字。

如何在 TypeScript 中将 obj 的类型声明为接口?我可以声明联合类型或类似类型的关联数组(或可变元组)吗?

是的,您可以使用 index signature:

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

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