我有一个字符串文字的短列表,我想在GraphQl定义中表示它。我尝试过使用enum,但它不适用于字符串文字。
假设我有一些字符串文字列表:
export const DanceTypeList = [
"truffle-shuffle",
"stanky-leg",
"ghost-ride-the-whip",
] as const;
// equivalent to ("truffle-shuffle" | "stanky-leg" | "ghost-ride-the-whip")
export type DanceType = typeof DanceTypeList[number];
我怎么能接受这一点,并制作一个比GraphQlString更具描述性的GraphQl类型?理想情况下,它将能够在交互式UI中自动建议。
GraphQL中没有等效的数据结构。您可以将枚举用于尝试执行的操作,但需要修改枚举值的名称以满足规范的命名要求。
enum DanceType {
truffle_shuffle
stanky_leg
ghost_ride_the_whip
}
在大多数GraphQL实现中,每个枚举值都可以映射到一个单独的"内部"值,以便更容易地将它们映射到内部表示,例如Postgres枚举。请参阅此处了解更多详细信息。
您也可以使用只允许具有特定值的字符串的自定义标量——但是,您将无法获得与使用枚举相同的自动完成。