Javascript 在类中声明对象类型

Javascript 在类中声明对象类型,javascript,typescript,class,object,ecmascript-6,Javascript,Typescript,Class,Object,Ecmascript 6,我应该创建一个json格式的js类 { "rows": [{ "value": { "comments": ${dInfo.description}, "Tags": [], "metadataList": { "names": [], "metadata": {} }, }] } 我想知道如何声明元数据 事实上,我是这样宣布的 export class Value {

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

{
  "rows": [{
    "value": {
        "comments": ${dInfo.description},
        "Tags": [],
        "metadataList": {
          "names": [],
          "metadata": {}
         },
  }]
}
我想知道如何声明
元数据

事实上,我是这样宣布的

export class Value {
  comments: string;
  Tags:string[];
  metadataList:{
    name:string[],
    metadata: Object
  }
}
这里的
metadataList
没有被键入,我认为这不是一个最佳实践。
我如何使用它的类型声明元数据列表?

如果元数据是键/值存储,则可以通过收紧值类型,使类型比
对象
{}
稍微窄一点:

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'
    }
};

如果您有更多关于元数据的信息,我可以将其缩小。

您为什么这样认为?对象是类型化的。我不确定,但当我尝试
metadataList:Object{..}
时,它不起作用,只是
{}
使其类型化?提供一个示例或Fenton答案应该会有所帮助。既然你已经必须想出
类值{…}
是什么阻碍了你实现自己的
类metadataList{…}
也是吗?您有一些示例数据吗?i、 e.metadatalist中会有什么-特别是与我的示例不同的地方?我是否应该指定metadatalist类型
对象{..}
,而不仅仅是
{..}