Я пытаюсь объединить 2 схемы, которые реализуют свои собственные определения nodeDefinitions. В одной схеме используется globalId, например:
const UserType = new GraphQLObjectType({
name: 'User',
interfaces: () => [nodeInterface],
fields: () => ({
id: globalIdField('User'),
...А другая схема реализует этот вид интерфейса узла с собственным пользовательским идентификатором.
const Node = new GraphQLInterfaceType({
name: 'Node',
description: 'Generic Node to fetch single parts of the graph.',
fields: {
id: { type: new GraphQLNonNull(entries.types.ariseId) }
},Ошибка
{
"errors": [
{
"message": "Interface field Node.id expects type ID! but Property.id
is type ariseId!.\n\nInterface field Node.id expects type ID! but
SpaceType.id is type ariseId!.\n\nInterface field Node.id expects
type ID! but Availability.id is type ariseId!.\n\nInterface field
Node.id expects type ID! but RatePlan.id is type
ariseId!.\n\nInterface field Node.id expects type ID! but
Traveler.id is type ariseId!.\n\nInterface field Node.id expects
type ID! but Partner.id is type ariseId!.\n\nInterface field
Node.id expects type ID! but Reservation.id is type ariseId!."
}
]
}


Спецификация сервера ретрансляции говорит, что тип Node должен быть точно
interface Node {
id: ID!
}
так что, вероятно, ваш второй фрагмент неверен (или, по крайней мере, не соответствует спецификации).
Как уже было сказано, тип идентификатора может иметь представление любого строкового или числового значения, поэтому, вероятно, просто изменить ваш второй фрагмент, чтобы использовать простой ID. Это верно как для определения интерфейса Node, так и для самого поля id.