GraphQL中是否支持对enum枚举类型进行扩展?
结论
你写的这种extend enum + @external的语法无法直接在Node.js的原生JavaScript/TypeScript环境中运行,这不是JS/TS的标准语法。
分场景说明
场景1:你想要在TypeScript代码中扩展已有枚举
TypeScript原生支持同名枚举的合并特性,不需要特殊的extend关键字,直接再声明一次同名枚举即可扩展:
// 原有枚举定义 enum Content { QUESTION, SOLUTION } // 扩展枚举,注意新增成员的值要和原有成员的值不冲突 enum Content { ANSWER = 2 } // 此时Content枚举已经包含3个成员,可正常在Node环境编译运行 console.log(Content.QUESTION) // 输出 0 console.log(Content.ANSWER) // 输出 2
场景2:你写的是GraphQL SDL的枚举定义
你给出的extend enum + @external写法是GraphQL Schema Definition Language的语法,只能用在GraphQL schema定义文件中,需要搭配GraphQL工具链(如GraphQL Code Generator)生成对应的业务代码后,才能在Node环境中使用,不能直接作为JS/TS代码执行。
内容的提问来源于stack exchange,提问作者Aishwer Sharma
相关产品推荐
相关产品推荐

