【问题标题】:"This express is not callable. Type 'Boolean' has no call signatures"“此快递不可调用。'Boolean' 类型没有调用签名”
【发布时间】:2021-04-10 22:00:35
【问题描述】:

我正在尝试使用 typescript 创建一个 React 组件,但我在控制台中收到此错误“此表达式不可调用。类型 'Boolean' 没有调用签名。”

我的代码的沙盒链接:https://codesandbox.io/s/cranky-carson-16lpe?file=/src/App.tsx

错误似乎来自 'setOpenPopup' 道具的第 17 行。

不确定我能做些什么来纠正错误。将不胜感激任何帮助解决问题。谢谢!

【问题讨论】:

    标签: reactjs react-typescript


    【解决方案1】:

    您的界面错误。按照惯例,setOpenPopup 应该是一个接受布尔值并返回最有可能为 void 的任何值的函数

    interface PopupProps {
        openPopup: boolean;
        setOpenPopup: (open: boolean) => void;
    }
    

    【讨论】:

      【解决方案2】:

      prop 的类型是布尔值,但是在组件中它被作为函数调用。我相信你想要

      setOpenPopup: (isOpen: boolean) => void; // signature of a function which accepts a boolean
      

      【讨论】:

      • 将布尔值作为变量传递是一种不好的做法。 boolean 是一个类型名称,难以理解。使用更符合上下文的变量
      • 是的,我打错了。感谢您指出这一点
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 2020-08-08
      • 2020-12-27
      • 1970-01-01
      • 2020-06-13
      相关资源
      最近更新 更多