类型-graphql。字符串、布尔值和数字的联合类型失败

Posted

技术标签:

【中文标题】类型-graphql。字符串、布尔值和数字的联合类型失败【英文标题】:type-graphql. Union type of String, Boolean and Number failed 【发布时间】:2020-11-22 03:07:37 【问题描述】:

尝试在 type-graphql 中创建一个联合类型,表示 String、Number 和 Boolean 类,但是失败了。 知道怎么做吗?

export const NonObjectType = createUnionType(
    name: "NonObjectType",
    types: () => [String, Boolean, Number] as const,
    resolveType: (value) => 
        console.log(value, typeof value);
        switch (typeof value) 
            case "string":
                return String;
            case "number":
                return Number;
            case "boolean":
                return Boolean;
            default:
                return undefined;
        
    ,
);

@ArgsType()
@InputType("FindSomeArgsUnitInputType")
export class GqlArgsFindSomeArgsUnit<T extends object>
    implements IFindSomeArgsUnit<T> 
    @Field(() => String,  defaultValue: "id" )
    column: keyof T;

    @Field(() => [NonObjectType],  defaultValue: [""] )
    values: Array<string | boolean | number>;

错误: 错误:无法确定“GqlArgsFindSomeArgsUnit”类的“值”的 GraphQL 输入类型

【问题讨论】:

【参考方案1】:

不幸的是,GraphQL 规范不支持标量类型的联合,仅支持对象类型:

https://github.com/graphql/graphql-spec/issues/215

【讨论】:

以上是关于类型-graphql。字符串、布尔值和数字的联合类型失败的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript的类型值和变量

本人对于JavaScript的一些总结

day02python中的基本数据类型-布尔值和字符串

布尔值和选择 symfony 类型

第3章 类型,值和变量

js 值和引用