反应孩子的正确打字稿类型是什么?

时间:2020-04-15 18:58:46

标签: reactjs typescript typescript-typings children react-props

我正在尝试为映射孩子的组件正确输入道具:

type Props = {
    children: any
}

const MyComponent: FunctionComponent<Props> = () => (React.Children.map(children, someMapingFunction);

我一直在使用JSX.Element,但感觉不太正确。

2 个答案:

答案 0 :(得分:1)

浏览DefinitelyTyped下的代码,看来children键入为ReactNode

示例:

type Props = {
    children: ReactNode
}

const MyComponent: FunctionComponent<Props> = () => (React.Children.map(children, someMapingFunction);

注意ReactNode类型可以在React命名空间中找到:

import React from 'react';

let someNode: React.ReactNode;

答案 1 :(得分:0)

实际上,如果您使用的是children,则不必指定React.FunctionComponent

例如,以下代码编译没有错误:

const MyComponent: React.FC<{}> = props => {
  return props.children
}