我将我的.js文件更改为类型脚本文件. tsx。我在文件中定义了以下函数:
function MyCard(param1: ObjectDto, toggleFunction: any) {}
我在另一个.tsx文件中使用这个函数,如下所示
<MyCard param1={param1Value} toggleFunction={myToggleFunction} />
但我得到以下错误:
类型“{param 1:ObjectDto; toggle函数:(index:any)=〉void;“}”不能分配给类型“IntrinsicAttributes & ObjectDto”。类型“IntrinsicAttributes & ObjectDto”上不存在属性“param 1”。
在更改为Typescript格式之前,这工作得很好。我如何为Typescript修复这个问题?
3条答案
按热度按时间rqdpfwrv1#
如果其他人遇到这个问题,我的解决方案是将类型添加到React.FC:
而不是:
我需要:
wvyml7n52#
组件只有一个参数,即
props
对象,因此您的函数应该如下所示:类型系统正在尝试将属性与函数的第一个参数匹配,该参数的类型为
ObjectDto
。这就是为什么会出现错误不可分配给类型“IntrinsicAttributes & ObjectDto”
z2acfund3#
你是否为你的组件“MyCard”做了一个接口?
就像这样:
另外,我认为
toggleFunction: (param?: any) => void
是正确的类型,因为你的函数可能有参数,所以你应该像这样输入你的函数。