TypeScript不允许我访问数据

时间:2020-05-01 17:49:28

标签: javascript reactjs typescript

我有胜利图表的组件(不是我的),具有传递DomainPropType类型数据(它是它们的类型)的功能。

<VictoryZoomContainer onZoomDomainChange={this.onDomainChange.bind(this)} />

它将数据传递给我的函数。如何在打字稿中访问x(而不使用类型“ any”)?

enter image description here

x上的错误:

Property 'x' does not exist on type 'DomainPropType'.
Property 'x' does not exist on type '[number, number]'.

我很确定属性'x'存在。

在这里甚至可以访问x吗?

1 个答案:

答案 0 :(得分:2)

您必须知道typeof []也会返回object,这就是ts抱怨的原因。您可以首先检查domain是否为数组。如果不是,请返回x字段值。

if (Array.isArray(domain)) {
   return domain; // domain is an array - return it
}

return domain.x; // domain isn't an array, it's an object - return x field