我将.js文件更改为类型记录文件.tsx。我在文件中定义了以下函数:
function MyCard(param1: ObjectDto, toggleFunction: any) {}我在另一个.tsx文件中使用这个函数,如下所示
<MyCard param1={param1Value} toggleFunction={myToggleFunction} />但我得到了以下错误:
键入“{ param1: ObjectDto;toggleFunction:(index: any) => void;}”不能指定键入“IntrinsicAttributes&ObjectDto”。属性'param1‘在'IntrinsicAttributes & ObjectDto’类型中不存在。
在转换成打字本格式之前,这是很好的。我怎样才能把这个写成打字本呢?
发布于 2019-03-09 09:33:30
组件只有一个参数,即props对象,因此您的函数应该如下所示:
function MyCard(props: { param1: ObjectDto, toggleFunction: any }) {}类型系统试图将属性与函数的第一个参数匹配,该参数的类型为ObjectDto。所以你才会犯错误
不能指定键入“IntrinsicAttributes&ObjectDto”
发布于 2019-03-09 09:23:24
您为组件"MyCard“创建了接口吗?
如下所示:
interface MyCodeParams {
param1: ObjectDto
toggleFunction: (param: any) => void
}另外,我认为toggleFunction: (param?: any) => void是正确的类型,因为您的函数可能有参数,所以您应该像这样键入函数。
https://stackoverflow.com/questions/55075740
复制相似问题