| 类型 | 表示什么 | 示例 | 用途关键词 |
|---|---|---|---|
React.ReactNode |
一切能渲染的内容 | "hi" / <div /> / null |
children、插槽 |
React.ReactElement |
已构建的组件实例(JSX) | <MyComponent /> |
slot、render prop |
React.ElementType |
组件类型(可以是字符串或函数) | "div" / MyComponent |
动态组件、as prop |
React.ReactNodeReact.ReactNode 表示一切可以作为子元素渲染的内容,是最宽泛的类型。
JSX.Element / ReactElement"Hello")123)null / undefined / falseReactNode)当你需要表示**"可以放进 JSX 中渲染的东西"**时,使用这个。
type Props = {
children: React.ReactNode;
};
React.ReactElementReact.ReactElement 表示一个已经构建好的 React 元素,也就是 <Component /> 的返回值。
const el: React.ReactElement = <div>Hello</div>;
ReactElement ⊆ ReactNode,是其中的一种。当你明确需要的是组件实例(而不是任意 JSX 内容),比如 slot, render prop。
type Props = {
icon: React.ReactElement;
};
React.ElementType