# Interface ExoticComponent<P>

An object masquerading as a component. These are created by functions like forwardRef, memo, and createContext.

In order to make TypeScript work, we pretend that they are normal components.

But they are, in fact, not callable - instead, they are objects which are treated specially by the renderer.

interface ExoticComponent<P> {
$$typeof: symbol;
(props): ReactNode;
}

#### Type Parameters

- P = {}

  The props the component accepts.

#### Hierarchy (view full)

- ExoticComponent
  - NamedExoticComponent
  - ProviderExoticComponent
  - LazyExoticComponent

- ExoticComponent(props): ReactNode

- #### Parameters

  - props: P

  #### Returns ReactNode

  - Defined in common/temp/node_modules/.pnpm/@types+react@18.3.3/node_modules/@types/react/index.d.ts:635

#####
Index

### Properties

$$typeof

## Properties

### `Readonly` $$typeof

$$typeof: symbol

- Defined in common/temp/node_modules/.pnpm/@types+react@18.3.3/node_modules/@types/react/index.d.ts:636