тип-graphql. Тип объединения String, Boolean и Number не удалось - PullRequest
0 голосов
/ 01 августа 2020

Попытка создать тип объединения в 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>;
}

Ошибка: Ошибка: невозможно определить тип ввода GraphQL для «значений» класса «GqlArgsFindSomeArgsUnit»

1 Ответ

0 голосов
/ 05 августа 2020

К сожалению, GraphQL spe c не поддерживает объединение для скалярных типов, только для типов объектов:

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

...