Represents the type of a function component. Can optionally receive a type argument that represents the props the component accepts.

See

React TypeScript Cheatsheet

Example

// With props:
type Props = { name: string }

const MyComponent: FunctionComponent<Props> = (props) => {
return <div>{props.name}</div>
}

Example

// Without props:
const MyComponentWithoutProps: FunctionComponent = () => {
return <div>MyComponentWithoutProps</div>
}
interface FunctionComponent<P> {
    contextTypes?: ValidationMap<any>;
    defaultProps?: Partial<P>;
    displayName?: string;
    propTypes?: WeakValidationMap<P>;
    (props, context?): null | ReactElement<any, any>;
}

Type Parameters

  • P = {}

    The props the component accepts.

  • Parameters

    • props: P
    • Optional context: any

    Returns null | ReactElement<any, any>

Properties

contextTypes?: ValidationMap<any>

Deprecated

Lets you specify which legacy context is consumed by this component.

See

Legacy React Docs

defaultProps?: Partial<P>

Used to define default values for the props accepted by the component.

See

React Docs

Example

type Props = { name?: string }

const MyComponent: FC<Props> = (props) => {
return <div>{props.name}</div>
}

MyComponent.defaultProps = {
name: 'John Doe'
}
displayName?: string

Used in debugging messages. You might want to set it explicitly if you want to display a different name for debugging purposes.

See

Legacy React Docs

Example


const MyComponent: FC = () => {
return <div>Hello!</div>
}

MyComponent.displayName = 'MyAwesomeComponent'
propTypes?: WeakValidationMap<P>

Used to declare the types of the props accepted by the component. These types will be checked during rendering and in development only.

We recommend using TypeScript instead of checking prop types at runtime.

Generated using TypeDoc