Typescript GraphQL 等效于 EnumSet
Posted
技术标签:
【中文标题】Typescript GraphQL 等效于 EnumSet【英文标题】:Typescript GraphQL equivalent to EnumSet 【发布时间】:2020-10-26 15:49:58 【问题描述】:我有一个用例,只允许将一组特定的枚举值输入到突变/显示的输入中。我不太确定如何最好地处理这个问题。
鉴于以下情况:
import gql from 'graphql-tag';
export default gql`
enum DayOfWeek
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
`;
我想限制架构特定位置的选择值。
我希望我可以这样做:
import gql from 'graphql-tag';
export default gql`
union Weekday = MONDAY | TUESDAY | WEDNESDAY | THURSDAY | FRIDAY
union Weekend = SATURDAY | SUNDAY
架构似乎永远不会验证。我也尝试将这些引用为DayOfWeek.MONDAY
等,但无济于事。
有没有办法模仿这个功能?
【问题讨论】:
【参考方案1】:简短的回答:不。目前,GraphQL 仅支持将对象类型用于联合,并且没有用于访问现有枚举类型的单个枚举值的语法。您需要显式创建三个单独的枚举类型:
enum Weekday
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
enum Weekend
SATURDAY
SUNDAY
enum DayOfWeek
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
【讨论】:
谢谢,我也是这样阅读文档的。是否有任何已知的钩子可以帮助验证 Weekday 和 Weekend 是否“有效”?我目前最好的想法是在应用启动时编写自定义代码来验证一切是否处于良好状态。 您可以编写自定义验证规则。示例规则可以在here 找到。验证规则使用的访问者模式的简要说明可以在 here 找到。以上是关于Typescript GraphQL 等效于 EnumSet的主要内容,如果未能解决你的问题,请参考以下文章
typescript 手动等效于MaterialModule
TypeScript 中的 querySelectorAll 等效项