如何用可变数量的键定义一个打字稿类型?

时间:2018-06-06 13:15:26

标签: javascript json typescript

我有以下情况我不知道如何用打字稿表达:

{
  "things": {
    "a": 11,
    "b": 22,
    .
    .
    .
  }
}

然后我想定义类似的东西:

type Response<T> = { [_: string]: T }

所以上面的类型表示任何带有键的响应和类型T的某个值,但是我会有许多键,如json中所述,“a”“b”...而且我找不到类型为了它。

1 个答案:

答案 0 :(得分:4)

这应该有效:

interface Response<T> {

    things: {
        [key: string]: T;
    };
}

如果您将某些键修复为a,则可以执行以下操作:

interface Response<T, R> {

    things: {
        // fixed keys
        a: R;
        // some more fixed keys.

        [key: string]: T;
    };
}