在类中声明对象类型

时间:2018-11-29 14:21:35

标签: javascript typescript class object ecmascript-6

我应该创建一个尊重json格式的js类

{
  "rows": [{
    "value": {
        "comments": ${dInfo.description},
        "Tags": [],
        "metadataList": {
          "names": [],
          "metadata": {}
         },
  }]
}

我想知道如何声明metadata

我实际上是这样宣布的。

export class Value {
  comments: string;
  Tags:string[];
  metadataList:{
    name:string[],
    metadata: Object
  }
}

此处未键入metadataList,这不是我认为的最佳做法。 我怎么能声明metadataList的类型呢?

1 个答案:

答案 0 :(得分:1)

如果元数据是键/值存储,则可以通过收紧值类型来使类型比Object{}窄一点。

class Value {
  comments: string;
  Tags:string[];
  metadataList:{
    name:string[],
    metadata: { [key: string]: string }
  }
}

const val = new Value();

val.metadataList = {
    name: ['Example'],
    metadata: {
        key: 'value',
        key2: 'value'
    }
};

如果您有有关元数据的更多信息,我也许可以缩小范围。