graphql-compose中如何将resolver的InputType入参设为Schema必填项
解决方法
你可以直接使用 InputTypeComposer 实例内置的 .NonNull 属性实现需求,既保留原类型对象的IDE跳转能力,又能让生成的GraphQL Schema将该参数标记为必填项。
修改后的代码示例:
const createResolver = schemaComposer.createResolver({ kind: 'mutation', name: 'SomeNameHere', type: SomeTypeNameTC, args: { // 直接调用ITC实例的.NonNull属性即可 inputForm: InputFormITC.NonNull, }, resolve: ({ args }) => { return createInputForm(args.inputForm); } });
补充说明
.NonNull 是graphql-compose为所有类型实例(包括InputTypeComposer、ObjectTypeComposer、标量类型TC等)内置的Getter,返回的是经过NonNull包装的类型实例,和你手动写字符串 'InputFormInput!' 生成的Schema效果完全一致。
这种写法全程保留类型引用,IDE的类型跳转、自动补全、类型校验能力都不会受到影响。
内容的提问来源于stack exchange,提问作者joshft91
相关产品推荐
相关产品推荐

