类型-graphql。String、Boolean 和 Number 的联合类型失败

Jer*_*me 6 union types typescript typegraphql

尝试在 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>;
}
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*tek 4

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

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