【问题标题】:Typescript Error Object is of type 'unknown'打字稿错误对象的类型为“未知”
【发布时间】:2020-10-26 16:34:09
【问题描述】:

Typescript 新手,无法弄清楚我遇到的这个错误。我正在使用最终形式并将项目推入数组中。我可以 console.log 这些值并查看数组和数组中的项目。但是当我将它传递给我的子组件时,我不断收到错误消息: Object is of type 'unknown

父组件

<Form 
  onSubmit={onFormSubmit} 
  initialValues={{ items: [{ item: '' }, { item: '' }]}} 
  mutators={{ ...arrayMutators }} 
>
<List values={values} />
//no TS error

子组件

//List.tsx

<Button disabled={values.items.length === 10}>Add item</Button>
//TS error for values.items (Object is of type 'unknown')

类型声明:

values: Record<string, unknown>;

【问题讨论】:

  • 好吧,您将values 声明为Record&lt;string, unknown&gt;,所以values.itemsunknown,除非您明确检查其类型。这个属性如何在组件内部使用?你能更严格地声明它的类型吗?

标签: reactjs typescript react-final-form


【解决方案1】:

如果values 类型是unknown,则不能在List 组件中使用items.length,因为items 在底层是undefined

【讨论】:

  • 你可以尝试类似:&lt;Button disabled={(values.items as Array&lt;unknown&gt;).length === 10}&gt;Add item&lt;/Button&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 2021-11-16
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 2018-05-30
相关资源
最近更新 更多