typescript - Kan ikke representere ikke-enum-verdi
I min GraphQL API (med TypeScript & type-graphql) prøver jeg å kjøre en mutasjon hvor inputType har en enum-verdi definert som nedenfor
export enum GenderType {
female = 'female',
male = 'male',
}
registerEnumType(GenderType, {
name: 'GenderType',
});
og jeg prøver å utføre denne mutasjonen.
mutation {
registerStudent(data: {
name: "John",
gender: "male",
}) {
id
}
}
men når jeg prøver å utføre mutasjonen, får jeg en feil som sier
"melding": "Enum "GenderType" kan ikke representere en ikke-enum-verdi: "female". Mente du enum-verdien "female" eller "male"?",
Jeg tror dette skjer på grunn av hvordan jeg definerte enum-typen ved å bruke registerEnumType i type-graphql.
Hvordan vanhellige en enum med type-graphql
Svar #1
💡 Fant problemet...
Faktisk var problemet plassert i mutasjonsobjektdatene som jeg sendte.
Først sender jeg kjønnstype som en String som forårsaker problemet.
mutation {
registerStudent(data: {
name: "John",
gender: "male",
}) {
id
}
}
Dette er feil fordi det er en streng, programmet forventer en verdi vi definerte i enum, så send enum-verdiene som de er.
mutation {
registerStudent(data: {
name: "John",
gender: male,
}) {
id
}
}
