|      1joesonw      2020-11-29 16:16:05 +08:00 React.ReactNode 含 React.ReactElement | 
|  |      2yuang      2020-11-29 16:47:58 +08:00 JSX.Element | 
|  |      3yuang      2020-11-29 16:49:47 +08:00  2 | 
|  |      4tikazyq      2020-11-29 17:38:00 +08:00  1 React.FC = Functional Component 函数组件 React.ReactElement = Native DOM Element / User Defined Component 原生 DOM 元素 / 用户自定义元素 React.ReactNode = Any possible type of React node 所有可能的 React 节点 = 原生 JS 类型 + 原生 DOM 元素 + 用户自定义元素 简单来说,不知道用什么组件类型时,就用 React.FC | 
|      5chenliangngng OP | 
|  |      6geekrainy      2020-11-30 00:12:54 +08:00  1 React.FC 包含了 PropsWithChildren 的泛型,不用显式的声明 props.children 的类型,ReactNode 和 ReactElement 一般用在通过其他 props 传递组件的情形,手动声明。 | 
|  |      7weixiangzhe      2020-11-30 09:13:39 +08:00 | 
|  |      8funnyecho      2020-11-30 10:16:46 +08:00  1 可以参考 @types 中的定义: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/4a1e6b12938de49594f8eba59ad1b1f19d6478c4/types/react/index.d.ts#L237 React.Element 可以看作是 React 组件的基类型。 我自己实际使用中,很少会用 React.Element 。 如果定义 functional component,就用 React.FC<T>。 React.Node 用于外部组件的输入(比如 props ),因为 React.Node 个人感觉类似与 any 的组件类型,它几乎包含了 React 所支持的所有组件类型: type ReactNode = ReactElement | ReactNodeArray | string | text | boolean | null | undefined; |