Есть 2 варианта, которые я могу придумать, чтобы достичь этого:
- Примените экспорт :
В вашемна случай, если это будет немного сложнее, но что-то вроде этого может работать, если HOC не требует никаких реквизитов.Если это произойдет, вам придется изменить тип, который вы разыгрываете.
export default connect(
mapStateToProps,
{}
)(GraphqlQuery) as typeof GraphqlQuery
factory
export const createGraphqlQuery = <T, TVariables = OperationVariables>() => {
const GraphqlQuery = (props: PropsType) => {
const { query, variables, children, user, ...rest } = props;
if (!user) return null;
return (
<Query<T, TVariables>
query={query}
variables={variables}
context={{
headers: {
"X-User-Id": user.id,
},
}}
{...rest}
>
...
</Query>
);
};
const mapStateToProps = ({ user }: { user: IUserState }) => ({
user,
});
return connect(
mapStateToProps,
{}
)(GraphqlQuery)
};
Использование:
const GraphqlQuery = createGraphqlQuery<{}, {}>();
<GraphqlQuery ... />
Определенно есть компромиссы для каждого.