Απαρίθμηση ως τύπος στο TypeScript
Κάθε απαρίθμηση δημιουργεί τον δικό της
τύπο δεδομένων. Ας ορίσουμε για παράδειγμα για
τη μεταβλητή που αποθηκεύει την τρέχουσα εποχή τον
τύπο Season:
let current: Season;
Ας γράψουμε στη μεταβλητή μας τον αριθμό της εποχής:
let current: Season = Season.Winter;
console.log(current); // 0
Μπορούμε να ορίσουμε τον αριθμό της εποχής χειροκίνητα:
let current: Season = 3;
Αν όμως προσπαθήσουμε να γράψουμε δεδομένα άλλου τύπου, για παράδειγμα, μια συμβολοσειρά, θα υπάρξει σφάλμα:
let current: Season = 'str'; // θα προκύψει σφάλμα
Δυστυχώς, το εύρος τιμών δεν ελέγχεται και μπορούμε να γράψουμε έναν αριθμό που απουσιάζει από την απαρίθμησή μας:
let current: Season = 7; // δεν θα προκύψει σφάλμα
Κατά τον έλεγχο μέσω του τελεστή typeof
η μεταβλητή μας θα επιστρέψει αριθμητικό τύπο:
let current: Season = 3;
console.log(typeof current); // "number"
Συνοψίζοντας, μπορούμε να πούμε ότι ένας τέτοιος τύπος ελέγχεται όχι πολύ αυστηρά και γι' αυτό η αξία του είναι αμφίβολη.