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