javascript - 在类中声明对象类型

标签 javascript typescript class object ecmascript-6

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

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

我想知道如何声明元数据

我实际上是这样声明的。

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

这里没有输入metadataList,我认为这不是最佳实践。 我如何声明 metadataList 及其类型?

最佳答案

如果元数据是键/值存储,您可以通过收紧值类型来使类型比 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'
    }
};

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

关于javascript - 在类中声明对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53541118/

相关文章:

Javascript 性能 - 已删除节点上的事件

javascript - 触发单击“保存到驱动器”按钮

javascript正则表达式匹配仅返回最后一个匹配

javascript - 如何将嵌套数组转换为逗号分隔的字符串

typescript - 如何使用类型保护解析接口(interface)的 typescript 联合类型

typescript ,限制第二个参数依赖于第一个参数类型

reactjs - 具有通用初始类型的高阶组件

python 类型错误: dl() takes exactly 4 arguments (3 given)

c++ - 我应该在这里使用 friend 类吗?

r - 在 R 中使用 apply 时丢失类信息