Skip to content
scroll to zoom · drag to pan

ReactNode

type ReactNode =
| ReactElement
| string
| number
| bigint
| Iterable<ReactNode>
| ReactPortal
| boolean
| null
| undefined
| DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_REACT_NODES]
| Promise<AwaitedReactNode>;

Defined in: node_modules/@types/react/index.d.ts:436

Represents all of the things React can render.

Where ReactElement only represents JSX, ReactNode represents everything that can be rendered.

React TypeScript Cheatsheet

// Typing children
type Props = { children: ReactNode }
const Component = ({ children }: Props) => <div>{children}</div>
<Component>hello</Component>
// Typing a custom element
type Props = { customElement: ReactNode }
const Component = ({ customElement }: Props) => <div>{customElement}</div>
<Component customElement={<div>hello</div>} />