Ich habe folgendes Schema:Wie wird auf einen bestimmten ENUM-Wert im GraphQL-Typ verwiesen?
enum PaymentTypeName {
PAYMENT_CARD
PAYMENT_CARD_TOKEN
}
interface Payment {
id: ID!
type: PaymentTypeName!
}
type PaymentCardPayment implements Payment {
id: ID!
type: PaymentTypeName!
card: PaymentCard!
}
type PaymentCardTokenPayment implements Payment {
id: ID!
type: PaymentTypeName!
card: PaymentCard!
}
Wenn Payment
PaymentCardPayment
oder PaymentCardTokenPayment
wird durch den Wert des Typs bestimmt ist, das heißt, es entweder PAYMENT_CARD
oder PAYMENT_CARD_TOKEN
ist.
Wie kann ich in der Schnittstelle angeben, dass PaymentCardPayment
/PaymentCardTokenPayment
einen bestimmten Wert von PaymentTypeName
erben?
Ich habe verschiedene Kombinationen ausprobiert:
type PaymentCardPayment implements Payment {
id: ID!
type: PaymentTypeName.PAYMENT_CARD!
card: PaymentCard!
}
und:
type PaymentCardPayment implements Payment {
id: ID!
type: PaymentTypeName[PAYMENT_CARD]!
card: PaymentCard!
}
aber alle diese prompt einen Syntaxfehler und ich war nicht in der Lage, die entsprechenden Unterlagen zu finden.
stimme ich nicht zu. ENUM ist ein Sonderfall. 'PaymentType' Kontext macht es Sinn, dass' type' beliebige Werte des 'PaymentTypeName' erben kann. Im Zusammenhang mit "PaymentCardPayment" ist es jedoch irreführend zu sagen, dass der Wert einer der ENUM-Werte ist. es ist nicht. Es ist ein konstanter Wert, der eine Teilmenge von "PaymentTypeName" ist. – Gajus