获取深数组元素类型

时间:2020-03-07 00:26:56

标签: typescript

const data = {
  foo: [{
    x: 1,
    bar: [{
      y: 1
    }]
  }]
}

这很好:

type level1Type = typeof data.foo[0]

从更深的元素中提取类型的正确语法是什么,例如

type level2Type = typeof data.foo[0].bar[0]

结果为Parsing error: ';' expected.

https://codesandbox.io/s/ltykm

1 个答案:

答案 0 :(得分:2)

这有效:

type Level2Type = (typeof data)['foo'][0]['bar'][0]
// Level2Type = number

区别在于您要在类型上查找属性,而不是实际值。有关更多详细信息,请参见indexed access operator的Typescript文档。