import { Field, ID, InterfaceType } from '@nestjs/graphql'; import { Species } from './species.enum'; @InterfaceType({ resolveType(animal) { switch (animal.species) { case Species.DOG: return import('./types/dog').then((module) => module.Dog); case Species.CAT: return import('./types/cat').then((module) => module.Cat); } }, }) export class Animal { @Field(() => ID) id: number; @Field(() => Species) species: Species; }