Functional Higher Order Components (HOCs) with Typescript
Contents
An HOC in React is a component that wraps another component to provide additional props or functionality to the wrapped component
Here's a simple example of how we can create an HOC using Typescript:
The component below will provide an isVisible
prop to a component which will alolow us to show or hide it selectively
import React, { useState } from 'react';
interface VisibilityProps {
isVisible?: boolean;
}
/**
* HOC that adds an `isVisible` prop that stops a component from rendering if
* `isVisible===false`
* @param WrappedComponent component to be selectively hidden
* @returns null if `isVisible` is false
*/
export function withVisibility<P>(WrappedComponent: React.ComponentType<P>) {
const VisibityControlled = (props: P & VisibilityProps) => {
if (props.isVisible === false) {
return null;
}
return <WrappedComponent {...props} />;
};
return VisibityControlled;
}