typescript - type-graphql. Union typ String, Boolean a Number selhal
Snažím se vytvořit typ unie v type-graphql, který by reprezentoval třídy String, Number a Boolean, ale selhalo to. Máte nějaký nápad, jak to udělat?
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>;
}
Chyba: Chyba: Nelze určit vstupní typ GraphQL pro 'values' třídy 'GqlArgsFindSomeArgsUnit'
Odpověď č. 1
Bohužel, specifikace GraphQL nepodporuje unii na skalárních typech, pouze na typech objektů:
https://github.com/graphql/graphql-spec/issues/215