首页 > 解决方案 > 在 TSX 中将 var 作为函数键入时出错

问题描述

我是 TS 的新手。这段代码我没有收到任何错误:

interface Props {
  active: boolean
  error: any // unknown
  input: any // unknown
  onActivate: Function
  onKeyUp: Function
  onSelect: Function
  onUpdate: Function
  readonly: boolean
  selected: boolean
  value: string
}

但是在这里,我收到一个错误消息:

Cannot redeclare block-scoped variable 'Function'.ts(2451)

对于每个声明Function

const EditableCell: React.FC<Props> = (props) => {
  const {
    input: any,
    value: string,
    selected: Function,
    active: boolean
    onSelect: Function,
    onActivate: Function,
    onUpdate: Function
  } = props

顺便说一句,这两个代码块立即相互跟随

标签: typescripttsx

解决方案


在解构道具时删除类型分配。

const {
  active,
  error, // unknown
  input, // unknown
  onActivate,
  onKeyUp,
  onSelect,
  onUpdate,
  readonly,
  selected,
  value
} = props

小心 -

不要使用任何和 Function 类型,使用适当的类型而不是它们!


推荐阅读