Я понял это в конце. Проблема заключалась в добавлении функции разрешения типа для определения типа объекта, который должен быть возвращен. После нескольких проигранных / выигранных сражений я обнаружил, что вам нужно создать отдельный преобразователь для класса типа объединения и один в другом преобразователе для поля с типом объединения. Итак, учитывая мой пример выше, мне нужно было: 1. Создать распознаватель для типа Types:
@Resolver('Types')
export class TypesResolver {
@ResolveProperty()
__resolveType(obj) {
if (obj instanceof Small) {
return 'Small';
}
if (obj instanceof Big) {
return 'Big';
}
return null;
}
}
Разрешите свойство, используемое в распознавателе Cars с типом Types, и верните требуемый объект:
@ResolveProperty('type')
__resolveType(obj): any {
if (obj.color) {
return this.smallService.getByColor(obj.color);
}
if (obj.size) {
return this.bigService.getBySize(obj.size);
}
return null;
}