在TypeScript中表达未知的字符串对象键

时间:2017-06-17 20:03:48

标签: json typescript

我正在为客户端库创建一个TypScript Declaration文件,其中的方法返回一个具有变量字符串键的对象(记录ID):

getRecords(...): {
  [string]: {  // ??
    first: string,
    last: string,
    ...
  }
};

指定键值仅在运行时是否已知的正确方法是什么,以及对此的引用是什么?

getRecords返回类似的内容:

{
  'GuT9b...pX': {
    first: 'John',
    last: 'Doe',
    ...
  },
  'aMe4T...lk': {
    first: 'Jane',
    last: 'Doe',
    ....
  }
}

(请注意,这是用PHP编写的HTTP API的包装器,因此我无法控制结果是关联数组(即JavaScript哈希),而不是具有.id字段的数组在每个元素中。)

1 个答案:

答案 0 :(得分:1)

它被称为indexable type

function getRecords(key: string): { [s: string]: { first: string /*, ...*/ } } {
    return { [key]: { first: 'John' } }
}