У нас есть фабрика, которая создает типы с использованием обобщенных c типов:
export function GenericResolverFactory(props: FactoryProps) {
@GqlType(`${props.model.name}Response`)
class ModelPaginatedResponse extends ResponseFactory(props.modelClass) {
// you can add more fields here if you need
}
@GqlInputType(`${props.model.name}CreateInput`)
class CreateInput extends CreateInputFactory(props.createInput) { }
@Resolver(_of => props.modelClass, { isAbstract: true })
abstract class GenericResolver {
@Mutation(_returns => props.modelClass, { name: `create${startCaseName}` })
create(@Arg('data') data: CreateInput, @Ctx() _context: UserContext) {
return this.__getService().create(data);
}
}
return ModelResolverClass;
}
На данный момент мы должны объявить входные аргументы как: Arg('input') input: UpdateInput
Поскольку мои типы сгенерированные с использованием фабрики классы не будут доступны (не во время выполнения?). Есть ли способ обратиться к этим динамически генерируемым входам? Есть ли способ сделать что-то вроде: Arg('input') input: resolveType('ProductCreateInput')