与枚举集等效的Typescript GraphQL

与枚举集等效的Typescript GraphQL,graphql,graphql-js,graphql-tag,Graphql,Graphql Js,Graphql Tag,我有一个用例,只允许将一组特定的枚举值输入到突变/显示的输入中。我不太确定如何最好地处理这个问题 鉴于以下情况: 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`
  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
,但没有成功


有没有办法模仿此功能?

简短回答:没有。目前,GraphQL只支持对联合使用对象类型,并且没有语法用于访问现有枚举类型的单个枚举值。您需要显式创建三种不同的枚举类型:

enum Weekday {
  MONDAY
  TUESDAY
  WEDNESDAY
  THURSDAY
  FRIDAY
}

enum Weekend {
  SATURDAY
  SUNDAY
}

enum DayOfWeek {
  MONDAY
  TUESDAY
  WEDNESDAY
  THURSDAY
  FRIDAY
  SATURDAY
  SUNDAY
}

谢谢,这也是我阅读文档的方式。是否有任何已知的钩子可以帮助验证工作日和周末是否“有效”?我目前最好的想法是在应用程序启动时编写自定义代码,以验证是否处于良好状态。您可以编写自定义验证规则。可以找到示例规则。可以找到验证规则使用的访问者模式的简要说明。