我有胜利图表的组件(不是我的),具有传递DomainPropType
类型数据(它是它们的类型)的功能。
<VictoryZoomContainer onZoomDomainChange={this.onDomainChange.bind(this)} />
它将数据传递给我的函数。如何在打字稿中访问x
(而不使用类型“ any”)?
x
上的错误:
Property 'x' does not exist on type 'DomainPropType'.
Property 'x' does not exist on type '[number, number]'.
我很确定属性'x'存在。
在这里甚至可以访问x
吗?
答案 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