首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >财产..。在“IntrinsicAttributes&.”类型上不存在

财产..。在“IntrinsicAttributes&.”类型上不存在
EN

Stack Overflow用户
提问于 2019-03-09 09:11:19
回答 2查看 115.8K关注 0票数 45

我将.js文件更改为类型记录文件.tsx。我在文件中定义了以下函数:

代码语言:javascript
复制
function MyCard(param1: ObjectDto, toggleFunction: any) {}

我在另一个.tsx文件中使用这个函数,如下所示

代码语言:javascript
复制
<MyCard param1={param1Value} toggleFunction={myToggleFunction} />

但我得到了以下错误:

键入“{ param1: ObjectDto;toggleFunction:(index: any) => void;}”不能指定键入“IntrinsicAttributes&ObjectDto”。属性'param1‘在'IntrinsicAttributes & ObjectDto’类型中不存在。

在转换成打字本格式之前,这是很好的。我怎样才能把这个写成打字本呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-09 09:33:30

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

代码语言:javascript
复制
function MyCard(props: { param1: ObjectDto, toggleFunction: any }) {}

类型系统试图将属性与函数的第一个参数匹配,该参数的类型为ObjectDto。所以你才会犯错误

不能指定键入“IntrinsicAttributes&ObjectDto”

票数 67
EN

Stack Overflow用户

发布于 2019-03-09 09:23:24

您为组件"MyCard“创建了接口吗?

如下所示:

代码语言:javascript
复制
interface MyCodeParams {
    param1: ObjectDto
    toggleFunction: (param: any) => void
}

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

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55075740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档