A TypeScript enum és tuple két különböző típus, amelyek külön célokat szolgálnak.
Itt egy tömör, gyakorlati szemléletű magyarázat példákkal:
✅ enum – felsorolás típus
Olyan típus, amelynek lehetséges értékei előre meghatározott konstansok.
🧩 Mire való?
- Kódolás helyett beszédes névvel jelölsz állapotokat, típusokat, szerepköröket, stb.
🔧 Példa:
enum UserRole {
Admin,
Editor,
Viewer
}
const role: UserRole = UserRole.Editor;
- Az
UserRole.Editorértéke1(alapértelmezés szerint 0-tól számozódik) - Írhatod így is:
enum UserRole {
Admin = 'admin',
Editor = 'editor',
Viewer = 'viewer'
}
✅ Mikor használd?
- Ha egy érték csak néhány fix állapotot vehet fel
- Pl. státusz, típus, kategória, jogosultság
✅ tuple – rögzített típusú tömb
Egy fix hosszúságú, pozíciókhoz kötött tömb, ahol minden elemnek külön típusa van.
🔧 Példa:
let userTuple: [string, number];
userTuple = ['Anna', 30]; // OK
userTuple = [30, 'Anna']; // ❌ Hibás típus
🧩 Mire való?
- Olyan struktúrához, ahol a sorrend és típus is számít, pl.
[név, életkor],[lat, lng]
Példa használat:
type Coordinate = [number, number];
const pos: Coordinate = [47.5, 19.04];
🧠 Összefoglalás
| Jellemző | enum | tuple |
|---|---|---|
| Mi ez? | Felsorolás típus | Fix struktúrájú tömb |
| Mikor használd? | Állapot, opció, típus | Fix pozíciós adatok |
| Példa | UserRole.Admin | ['Anna', 25] |
| Indexelhető? | Nem | Igen (tuple[0]) |
Ha szeretnél, adok rá Angular-specifikus példát is (pl. enum route típushoz, tuple form field validációhoz).