An enum is a type whose value must be one of a fixed list of names, such as ADMIN or GUEST. It adds type safety and validation in both directions.
For input, the server rejects an argument outside the list before any resolver runs. For output, clients know the field holds only those values. They can handle each case, and code generators can produce matching types.
Use an enum for a small set of values known ahead of time, like roles, statuses or sort orders. If the values change often or come from data, use a String or an object type instead.
enum UserRole {
ADMIN
MODERATOR
USER
GUEST
}
type User {
id: ID!
name: String!
role: UserRole!
}
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
The diagram below the answer is the concept . Jump to it ↓