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
  }
}

Relaterte artikler