我将.js文件更改为打字稿文件.tsx。我在文件中定义了以下功能:

function MyCard(param1: ObjectDto, toggleFunction: any) {}


我正在另一个这样的.tsx文件中使用此功能

<MyCard param1={param1Value} toggleFunction={myToggleFunction} />


但是我收到以下错误:


  类型'{param1:ObjectDto; toggleFunction:(索引:任何)=>无效; }'是
  不可分配给'IntrinsicAttributes&ObjectDto'类型。属性
  类型'IntrinsicAttributes&ObjectDto'上不存在'param1'。


在更改为Typescript格式之前,此方法运行良好。
我该如何解决打字稿?

最佳答案

组件只有一个参数是props对象,因此您的函数应如下所示:

function MyCard(props: { param1: ObjectDto, toggleFunction: any }) {}


类型系统正在尝试将属性与函数的第一个参数匹配,该参数的类型为ObjectDto。这就是为什么你会出错


  不可分配给'IntrinsicAttributes&ObjectDto'类型

10-04 22:32