Сервер Apollo и TypeScript: тип «GraphQLApi» не имеет общих свойств с типом «DataSource <object>» - PullRequest
0 голосов
/ 02 марта 2020

Я настраиваю интерфейс между нашим Next JS Front и рядом бэкэндов. Интерфейс преобразует различные API REST или GraphQL в единый API GraphQL. Я использую библиотеку apollo-datasource-graphql , чтобы перевести обратную сторону, которая предлагает API GraphQL, в источник данных для использования с сервером Apollo. Я сталкиваюсь с большим количеством проблем TypeScript. В настоящее время TS жалуется на мое определение источников данных Apollo

index.ts:10:25 - error TS2559: Type 'InterfaceGraphQLApi' has no properties in common with type 'DataSource<object>'.

10   dataSources: () => ({ gqlApi: new InterfaceGraphQLApi() })
                           ~~~~~~

  node_modules/apollo-server-core/dist/graphqlOptions.d.ts:31:5
    31     [name: string]: DataSource<TContext>;
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The expected type comes from this index signature.

здесь

const server = new ApolloServer({
  typeDefs,
  resolvers,
  dataSources: () => ({ gqlApi: new InterfaceGraphQLApi() })
});

, где InterfaceGraphQLApi начинается таким образом

import { GraphQLDataSource } from "apollo-datasource-graphql";
export default class InterfaceGraphQLApi extends GraphQLDataSource {
  baseURL = "http://localhost:4545/admin/api";

В исходных файлах для Apollo-datasource-graphql (node_modules / src / GraphQLDataSource.ts) я вижу

export class GraphQLDataSource<TContext = any> {

Так что я могу передать какой-то параметр типа, который будет таким же, как Datasource<object> Может быть, я в порядке? Но я далеко за пределами своей зоны знаний TypeScript / Apollo, так что я заблудился здесь. Любое руководство высоко ценится!

...