Почему GraphiQL не заполняет / не находит поля моего интерфейса автоматически?

Я пытаюсь использовать interface в своем schema. Вот schema:

export default new GraphQLObjectType({
  name: "Org",
  fields: () => ({
    name: {
      type: GraphQLString
    },
    paymentType: {
      type: PaymentType,
      resolveType: ({ isCreditCard }) => isCreditCard ? CreditCard : ACH
    }
});

export const PaymentType = new GraphQLInterfaceType({
  name: "PaymentType",
  fields: () => ({
    id: {
      type: new GraphQLNonNull(GraphQLID)
    },
    name: {
      type: new GraphQLNonNull(GraphQLString)
    },
    address: {
      type: new GraphQLNonNull(Address)
    }
  })
});

export const CreditCard = new GraphQLObjectType({
  name: "CreditCard",
  interfaces: [PaymentType],
  fields: () => ({
    number: new GraphQLNonNull(GraphQLInt),
  })
});

export const ACH = new GraphQLObjectType({
  name: "ACH",
  interfaces: [PaymentType],
  fields: () => ({
    routing: new GraphQLNonNull(GraphQLInt),
    accountNumber: new GraphQLNonNull(GraphQLInt),
  })
});

Когда я перехожу к своему GraphiQL, я вижу paymentType и поля, которые находятся в interface, но не вижу информации CreditCard или ACH. У меня что-то неправильно настроено? Что мне не хватает?


person jhamm    schedule 29.12.2017    source источник


Ответы (1)


Используете ли вы, например, тип (CreditCard или ACH) в запросе?

person Lafi    schedule 01.01.2018
comment
Это нормально, что вы используете и type, и resolveType вместе при экспорте по умолчанию? - person Lafi; 01.01.2018