# Interface FunctionComponentElement<P>

Represents a JSX element.

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

#### Example

    const element: ReactElement = <div />;

interface FunctionComponentElement<P> {
key: string;
props: P;
ref?: "ref" extends keyof P
? P extends {
ref?: R;
}
? R
: never
: never;
type: FunctionComponent<P>;
}

#### Type Parameters

- P

  The type of the props object

#### Hierarchy (view full)

- ReactElement<P, FunctionComponent<P>>
  - FunctionComponentElement

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

#####
Index

### Properties

key
props
ref?
type

## Properties

### key

key: string

Inherited from ReactElement.key

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

### props

props: P

Inherited from ReactElement.props

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

### `Optional` ref

ref?: "ref" extends keyof P
? P extends {
ref?: R;
}
? R
: never
: never

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

### type

type: FunctionComponent<P>

Inherited from ReactElement.type

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