首页 > 解决方案 > TypeScript 不允许我访问数据

问题描述

我有胜利图表的组件(不是我的),它具有传递类型数据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这里吗?

标签: javascriptreactjstypescript

解决方案


您必须知道,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

推荐阅读