Ένα enum ορίζει ένα σύνολο ονοματισμένων σταθερών. Το TypeScript έχει αριθμητικές και string enum.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Ένα enum ορίζει ένα σύνολο ονοματισμένων σταθερών. Το TypeScript έχει αριθμητικές και string enum.
{ , , , }
.;
[];
{
= ,
= ,
}
.;
Σε αντίθεση με τους περισσότερους τύπους TypeScript (που εξαφανίζονται κατά τη σύνταξη), ένα κανονικό enum εκπέμπει ένα JavaScript αντικείμενο στο bundle σου. Γι' αυτό πολλές ομάδες προτιμούν μια ένωση string literals συν as const, που είναι καθαρά σε επίπεδο τύπου:
// often preferred — zero runtime cost, easy to read in logs
const Status = { Active: "ACTIVE", Inactive: "INACTIVE" } as const;
type Status = typeof Status[keyof typeof Status]; // "ACTIVE" | "INACTIVE"
// or simply:
type Direction = "up" | "down" | "left" | "right";
const enum E { A, B } // inlined at compile time — no runtime object, but has tooling caveats
Enum δίνουν ουσιαστικά ονόματα σε σταθερά σύνολα (καταστάσεις, ρόλοι, κατευθύνσεις) και τα ομαδοποιούν κάτω από ένα namespace.
Αλλά επειδή εκπέμπουν κώδικα runtime και έχουν περιπλοκές (τα αριθμητικά enum ελέγχονται χαλαρά), το σύγχρονο TypeScript συχνά προτιμά string-literal unions για απλές περιπτώσεις — είναι ελαφρύτερα και σειριοποιούνται φυσικά.
Χρησιμοποίησε enum όταν θέλεις namespacing ή reverse mapping.