Я пытаюсь создать ApolloClient с помощью TypeScript, но есть некоторые ошибки типа, которые я не могу исправить. Может ли кто-нибудь указать мне правильное направление, что делать?
Ниже приведен пример кода (который нормально работает с JavaScript) для создания клиента:
import {
ApolloClient,
ApolloProvider,
InMemoryCache,
split
} from '@apollo/client';
import { setContext } from 'apollo-link-context';
import { createHttpLink } from 'apollo-link-http';
import { getMainDefinition } from '@apollo/client/utilities';
import { WebSocketLink } from '@apollo/link-ws';
const authLink = setContext((_, { headers }) => {
const token = localStorage.getItem('consequat-token');
return {
headers: {
...headers,
authorization: token ? `bearer ${token}` : null
}
};
});
const httpLink = createHttpLink({ uri: 'http://localhost:4000' });
const wsLink = new WebSocketLink({
uri: 'ws://localhost:4000/graphql',
options: { reconnect: true },
});
const splitLink = split(
({ query }) => {
const definition = getMainDefinition(query);
return (
definition.kind === 'OperationDefinition' &&
definition.operation === 'subscription'
);
},
wsLink,
authLink.concat(httpLink)
);
const client = new ApolloClient({
cache: new InMemoryCache(),
link: splitLink
});
Проблема в том, что authLink.concat(httpLink)
строка жалуется:
Argument of type 'ApolloLink' is not assignable to parameter of type 'ApolloLink | RequestHandler | undefined'.
Type 'ApolloLink' is missing the following properties from type 'ApolloLink': onError, setOnError ts(2345)
Я не могу найти ответов ни в документации Apollo, ни в Google.