不能表示非枚举值
Posted
技术标签:
【中文标题】不能表示非枚举值【英文标题】:Cannot represent non-enum value 【发布时间】:2020-11-10 14:15:54 【问题描述】:在我的 graphQL API(带有 typescript 和 type-graphql)中,我正在尝试运行一个 inputType 具有 enum 的突变strong> 值定义如下
export enum GenderType
female = 'female',
male = 'male',
registerEnumType(GenderType,
name: 'GenderType',
);
我正在尝试执行这个突变。
mutation
registerStudent(data:
name: "John",
gender: "male",
)
id
但是当我尝试执行突变时,它给出了一个错误提示
"message": "Enum "GenderType" :"female"。你的意思是枚举值 "female" 还是 "male"?",
我认为这是因为我如何在 type-graphql 中使用 registerEnumType 定义枚举类型。
如何玷污enum with type-graphql
【问题讨论】:
发现问题...实际上问题位于我通过的突变对象类型。首先我传递了性别:“男性”,但它是一个枚举,所以它有自己的值。然后我尝试了性别:男性它起作用了。把它作为男性传递,没有“男性”⚡ 您可以回答自己的问题并将其标记为已接受。这样你就可以帮助其他有同样问题的人,并清楚地表明这个问题有答案。 【参考方案1】:?找到问题了...
实际上问题在于我通过的突变对象数据。
首先,我将导致问题的性别类型作为 String 传递。
mutation
registerStudent(data:
name: "John",
gender: "male",
)
id
这是错误的,因为它是一个字符串,程序需要一个我们在枚举中定义的值,因此请按原样传递枚举值。
mutation
registerStudent(data:
name: "John",
gender: male,
)
id
【讨论】:
以上是关于不能表示非枚举值的主要内容,如果未能解决你的问题,请参考以下文章
使用 `import type` 声明导入时,TypeScript 枚举不能用作值