我应该声明对象变量什么类型的值

时间:2018-09-24 17:54:43

标签: javascript typescript typescript-typings

我有一个简单的对象,类型为{[key]:[[array]], [key]:[[array]]}

const types = {
  first: 'type1',
  second: 'type2',
}

const myobj = {
  '[types.first]': [
     ['blue', 'small', true, 200, 300, undefined, 150],
     ['blue', 'large', true, 560, 600, 300, 150],
  ],
  '[types.second]': [
    ['red', 'xlarge', true, 400, 400, 200, 1],
    ['red', 'xxlarge', true, 500, 500, undefined, 2]
  ]
}

我需要帮助来声明对象的类型,如下所示: const myobj: 'type of the object' = {....}

类似{[key: string]: [[]]},但我无法使其正常工作。

2 个答案:

答案 0 :(得分:1)

您的对象值实际上是元组类型的数组,可以将其键入为:

 { [key: string]: Array<[string, string, boolean, number | undefined, number | undefined, number | undefined, number | undefined]> }

doc

答案 1 :(得分:0)

  

我已经创建了对象的接口,然后将该接口作为参考传递,因此,我们有这个对象

"market_actions": [{
"link":"steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M%listingid%A%assetid%D2796249422649106588",
"name": "Inspect in Game..."
}]
  

以下对象的类型如下

export interface IDescription {
market_actions: IDAction[]
}
export interface IDAction {
link: string
name: string
}