我有一个标准的箭头MapES7函数,带有Typescript和React环境:
const getItemList: Function = (groups: any[]): JSX.Element =>
group.map((item: any, i: number) => {
const itemCardElemProps = { handleEvents: () => {}, ...item}
return <Item key={`${item.id}_${i}`} {...itemCardElemProps} />
})
字符串
并得到错误:
TS2739: Type 'Element[]' is missing the following properties from type 'Element': type, props, key
型
版本:typescript 3.5.3
7条答案
按热度按时间eh57zj3b1#
你也可以把一个JSX.Element作为片段发送回:
字符串
这样您就匹配了返回的类型,而它不会影响您的标记。
ctzwtxfj2#
要修复错误,需要将函数输出的类型从
JSX.Element
更改为React.ReactElement[]
或JSX.Element[]
,如下所示:字符串
或者你可以用
interface
的样式重写它:型
vltsax253#
@Roman他们一定是改变了什么,这对我不起作用
代码:
字符串
错误:
型
编辑:没关系,我只是需要添加函数类型,到函数中……如果你问我的话,我觉得有点蠢。
什么让我工作:
型
hkmswyz64#
我得到的错误,因为我继承JSX.元素,但我使用的是.ts文件扩展名。当我使用.tsx文件扩展名我的问题解决.
的数据
f87krz0w5#
我使用这段代码也会遇到同样的错误:
字符串
修复方法是将第一行改为:
型
1l5u6lss6#
我遇到了一个与此错误相关的问题,可能会发生在其他人身上。我是TS新手,有使用
[
和]
打开和关闭返回JSX的坏习惯。因为我刚发现TS不允许。因此,它们应替换为(
)
的数据
jobtbby37#
需要将JSX.Element的函数输出类型改为ReactNode[],如下所示:
字符串