# ReactNode

```ts
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](/api/nitida/sdk/react/-internal-/interfaces/reactelement/) only represents JSX, `ReactNode` represents everything that can be rendered.

## See

[React TypeScript Cheatsheet](https://react-typescript-cheatsheet.netlify.app/docs/react-types/reactnode/)

## Examples

```tsx
// Typing children
type Props = { children: ReactNode }

const Component = ({ children }: Props) => <div>{children}</div>

<Component>hello</Component>
```

```tsx
// Typing a custom element
type Props = { customElement: ReactNode }

const Component = ({ customElement }: Props) => <div>{customElement}</div>

<Component customElement={<div>hello</div>} />
```