代码之家  ›  专栏  ›  技术社区  ›  juan garcia

如何定义键数可变的typescript类型?

  •  0
  • juan garcia  · 技术社区  · 7 年前

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

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

    然后我想定义如下:

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

    因此,上面的类型表示任何带有键和t类型的特定值的响应,但是我将拥有许多键,如json中所述,“a”“b”…我找不到它的类型。

    1 回复  |  直到 7 年前
        1
  •  4
  •   Harshal Patil    7 年前

    这应该有效:

    interface Response<T> {
    
        things: {
            [key: string]: T;
        };
    }
    

    如果你有固定的钥匙 a ,您可以:

    interface Response<T, R> {
    
        things: {
            // fixed keys
            a: R;
            // some more fixed keys.
    
            [key: string]: T;
        };
    }