属性'在'IntrinsicAttributes&...'类型中不存在

问题描述 投票:-1回答:2

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

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

我在另一个.tsx文件中使用此函数

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

但是我收到以下错误:

输入'{param1:ObjectDto; toggleFunction :( index:any)=> void; ''不能赋值为'IntrinsicAttributes&ObjectDto'。 'IntrinsicAttributes&ObjectDto'类型中不存在属性'param1'。

在更改为Typescript格式之前,此工作正常。我如何解决这个问题?

reactjs typescript
2个回答
1
投票

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

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

类型系统试图将属性与函数的第一个参数匹配,该参数的类型为ObjectDto。这就是你得到错误的原因

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


1
投票

您是否为组件“MyCard”创建了界面?

像这样:interface MyCodeParams { param1: ObjectDto toggleFunction: (param: any) => void }

此外,我认为toggleFunction: (param?: any) => void是正确的类型,因为你的函数可能有参数,所以你应该像这样输入你的函数。

© www.soinside.com 2019 - 2024. All rights reserved.