You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GraphQL不支持连字符?定义带连字符的枚举Schema报错求助

解决GraphQL Schema中连字符引发的语法错误

嘿,作为GraphQL新手碰到这个问题太正常啦!我来给你捋清楚为啥会报错,以及怎么解决:

为啥用连字符会报错?

GraphQL的语法规则里,枚举值、字段名、类型名这类标识符是不允许包含连字符(-)的。当你写Hello-Hello时,解析器会把第一个-当成数学里的减号,误以为你在写一个数值运算表达式,所以才会抛出那个“期望数字但得到了H”的错误——它完全没意识到你是想定义一个枚举值!

而下划线(_)是GraphQL允许用在标识符里的字符,所以换成Hello_Hello就不会有任何问题。

正确的枚举写法示例

把你的枚举定义改成下划线或者驼峰命名都可以:

enum HowAreYou {
  Hello_Hello
  Hai_Hai
  # 也可以用驼峰写法:HelloHello
}

额外提一下GraphQL的命名规则

顺便给你补个小知识点,GraphQL标识符的命名要求:

  • 必须以字母(a-z/A-Z)或者下划线(_)开头
  • 后面可以跟字母、数字或者下划线
  • 连字符、空格这类特殊字符一概不允许,解析器会把它们当成语法符号处理,自然就报错啦

这样修改之后,你的Schema就能正常解析运行啦!

内容的提问来源于stack exchange,提问作者John Davis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:08:19