Круговая зависимость GraphQL.js - "Тип поля должен быть типом вывода, но получено: не определено".

Я бился головой об эту проблему в течение нескольких часов. У меня есть очень простая реализация GraphQL в Node.js следующим образом.

const UserType = new GraphQLObjectType({
  name: 'User',
  fields: () => ({
    id: new GraphQLNonNull(GraphQLString),
    username: new GraphQLNonNull(GraphQLString)
  })
});

const QueryType = new GraphQLObjectType({
  name: 'QueryType',
  fields: () => {
    user: {
      type: UserType,
      args: { id: { name: 'id', type: new GraphQLNonNull(GraphQLString) } },
      resolve: (parent, args) => getUser(args.id)
    }
  })
});

const schema = new GraphQLSchema({
  query: QueryType,
});

Это работает, если "тип" поля "пользователь" QueryType что-нибудь еще (например, GraphQLString). Если это UserTypeОднако я получаю следующую ошибку.

"Error: User.id field type must be Output Type but got: undefined."

Трассировка стека никуда не полезна, она просто ведет в сам модуль GraphQL. Насколько я могу судить, это не должно быть проблемой циклической зависимости, хотя я на всякий случай пытался ее решить. Любая помощь будет принята с благодарностью, потому что это сводит меня с ума.

0 ответов

Другие вопросы по тегам