仅使用typegraphql中的typename定义参数类型

仅使用typegraphql中的typename定义参数类型,graphql,graphql-js,apollo-server,typegraphql,Graphql,Graphql Js,Apollo Server,Typegraphql,我们有一个使用泛型类型创建类型的工厂: 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 }

我们有一个使用泛型类型创建类型的工厂:

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')
假设
resolveType
返回一个用
@InputType
@Field
修饰的类:

@Arg('input',type=>resolveType('ProductCreateInput'))输入:ICreateInput`
您只需要提供一个运行时值作为
@Arg
装饰器的第二个参数