首页 > 解决方案 > 为什么自定义子查询类型不能分配给 GraphQLObjectType?

问题描述

我尝试使用 typescript 创建一个 graphQl 查询模式并收到此错误消息

'{ name: string; 类型的参数 电影:{ 类型:GraphQLObjectType<any, any>; 参数:{ id:{ 类型:GraphQLScalarType;}; }; 解决(父:任何,参数:任何):无效;}; }' 不可分配给类型为“Readonly<GraphQLObjectTypeConfig<any, any>>”的参数。对象字面量只能指定已知属性,并且类型 'Readonly<GraphQLObjectTypeConfig<any, any>>' 中不存在 'movie'

const Query = new GraphQLObjectType({
    name: "Query",
    movie: {
        type: MovieType,
        args: { id: { type: GraphQLString } },
        resolve(parent, args) {},
    },
});

标签: typescriptgraphqlgraphql-js

解决方案


movie不是传递给GraphQLObjectType的构造函数的有效参数。如果您的意图是添加一个名为movie您的Query类型的字段,您应该这样做:

const Query = new GraphQLObjectType({
  name: "Query",
  fields: {
    movie: {
      type: MovieType,
      args: { id: { type: GraphQLString } },
      resolve(parent, args) {},
    },
  },
});

推荐阅读