在Graphql中共享枚举

时间:2020-04-16 06:07:01

标签: typescript enums graphql apollo express-graphql

刚刚开始学习GraphQL,我想分享一个在快速阿波罗服务器中导出的枚举。

./src/shared/fruitsEnum.ts

export enum fruitsEnum{
    APPLE,
    ORANGE
}

导入枚举

./src/market/fruits.ts

import { fruitsEnum } from "./src/shared/fruitsEnum.ts"

export const typeDef = `
    type Fruit{
        id: ID
        fruitName: fruitsEnum
    }

    type Query{
    ...
    }
`

我尝试这样做,但是得到Error: Unknown type fruitsEnum。之所以将枚举放在单独的位置,是因为在其他架构中可能使用相同的枚举。我的目标是拥有一个可共享的枚举类型。

1 个答案:

答案 0 :(得分:1)

Typescript枚举!= graphQL枚举

枚举需要在docs中的graphQL'context'中定义,因此它将以这种方式工作:

export const typeDef = `

  enum fruitsEnum{
    APPLE,
    ORANGE
  }

  type Fruit{
    id: ID
    fruitName: fruitsEnum
  }

  type Query{
  ...
  }

您可以使用type-graphql来“连接”它们(打字稿和graphql上下文)和(在客户端和服务器之间共享)没有明确的 [打字稿定义] 内部的枚举定义< / strong> typDef

更多信息here