typescript - Feil ved innstilling av initial medlemsverdi i et enum-objekt fra lokal variabel
Typescript-eksempel i lekeplassen her.
Jeg prøver å sette den opprinnelige medlemverdien til et enum-objekt, og den opprinnelige verdien kommer fra en konstant (numerisk). I dette tilfellet gir alle følgende verdier en TS-feil: "Enum-medlem må ha initialiserer."
Er dette ikke tillatt? Hvorfor er ikke de følgende medlemmene satt til det foregående enum-medlemmet pluss én?
For korthets skyld her er koden, men du kan se den i lekeplasslenken ovenfor:
const firstValue: number = 100;
enum Animal {
Lion = firstValue,
Tiger, // gives error
Horse, // gives error
Fish // gives error
}
Svar #1
Dette er faktisk ikke tillatt for øyeblikket - når man følger en annen enum-medlem med en initializer, øker et enum-medlem bare automatisk når den beregnede verdien er statisk kjent. Akkurat nå inkluderer det bare numeriske literaler og andre enum-medlemmer hvis verdier er statisk kjent, men analysen inkluderer for øyeblikket ikke const-deklarasjoner.
Du kunne omgå dette med
enum FirstValue {
firstValue = 100
}
og bruk FirstValue.firstValue i stedet for firstValue.
