类型 表示什么 示例 用途关键词
React.ReactNode 一切能渲染的内容 "hi" / <div /> / null children、插槽
React.ReactElement 已构建的组件实例(JSX) <MyComponent /> slot、render prop
React.ElementType 组件类型(可以是字符串或函数) "div" / MyComponent 动态组件、as prop

React.ReactNode

React.ReactNode 表示一切可以作为子元素渲染的内容,是最宽泛的类型。

当你需要表示**"可以放进 JSX 中渲染的东西"**时,使用这个。

type Props = {
  children: React.ReactNode;
};

React.ReactElement

React.ReactElement 表示一个已经构建好的 React 元素,也就是 <Component /> 的返回值。

const el: React.ReactElement = <div>Hello</div>;

当你明确需要的是组件实例(而不是任意 JSX 内容),比如 slot, render prop。

type Props = {
  icon: React.ReactElement;
};

React.ElementType