javascript - 如何定义具有可变数量的键的 typescript 类型?

标签 javascript json typescript

我有以下情况,我不知道如何在 typescript 中准确表达:

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

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

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

所以上面的类型代表任何带有键和类型 T 的特定值的响应,但我会有很多键,如 json 中所述,“a”“b”...并且我找不到类型为了它。

最佳答案

这应该有效:

interface Response<T> {

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

如果您像 a 一样修复了某些键,您可以执行以下操作:

interface Response<T, R> {

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

        [key: string]: T;
    };
}

关于javascript - 如何定义具有可变数量的键的 typescript 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50721430/

相关文章:

javascript - Jquery将项目添加到列表而不重新加载页面

jquery - 在 Rails 应用程序中输出 JSON

java - 我如何删除内部 j​​son 中的 backstack "\"图标删除

Angular 在 View 呈现之前设置 Array[]

javascript - Protocol Buffer : Uncaught reference error: exports is not defined

javascript - 通过单击外部关闭下拉菜单(Angular 4)

javascript - 通过 Javascript 设置段落 CSS 宽度不起作用

javascript - DOM 相当于 jQuery `.detach()` ?

javascript - 带 Angular Bootstrap "Error: $(...).collapse() is not a function"

.net - 为什么 IIS 7 不返回 JSON 错误?适用于*我的*机器