Вот так мы определяем дженерик тип для функции объявленной вида function declaration.
export function withAuthRedirect<WCP>(
WrappedComponent: React.ComponentType<WCP>
) {
const RedirectComponent = (props: WCP) => {
const isAuth = useSelector((state: CombinedStateType) => state.auth.isAuth);
if (!isAuth) return <Redirect to="/login" />;
return <WrappedComponent {...props} />;
};
return RedirectComponent;
}
Вопрос: Как определить дженерик тип для стрелочной функции? Ниже код не работает. JSX element 'WCP' has no corresponding closing tag.ts(17008). воспринимается как JSX tag.
export const withAuthRedirect = <WCP(тут ошибка)>(WrappedComponent: React.ComponentType<WCP>) => {
const RedirectComponent = (props: WCP) => {
const isAuth = useSelector((state: CombinedStateType) => state.auth.isAuth);
if (!isAuth) return <Redirect to="/login" />;
return <WrappedComponent {...props} />;
};
return RedirectComponent;
};