Enums
Enums - (це скорочення від слова enumerations перелічення) ще один тип даних в TS, який дозволяє розробникам створювати набори іменованих констатн. Enums представляють собою фіксований набір значень, які не змінюються під час виконання програми, що робить наш код більш читабельним і менш схильним до помилок.
Приклад створеня enum.
enum Priority {
Low,
Mid,
High
};
Значення по дефолту, які не явно присвоюються елементам нашого enum, будуть числа від 0.
enum Priority {
Low,
Mid,
High
};
console.log(Priority.Low); // 0
console.log(Priority.Mid); // 1
Звісно ж ми можемо змінювати дефолтні значення на числа або стрічки.
enum Priority {
Low = 1,
Mid,
High
};
console.log(Priority.Low); // 1
console.log(Priority.Mid); // 2
Розглянемо приклад зі стрічками.
enum Priority {
Low = 'low',
Mid = 'mid',
High = 'high'
};
console.log(Priority.Low); // "low"
console.log(Priority.Mid); // "mid"
// Такий варіант видасть нам помилку
enum Direction {
Up = 'up',
Down, // ERROR: Enum member must have initializer.
Left,
Right,
};
Приклади виколистання
Один з прикладів використання Enum, це коли нам потрібно вказати не просто тип даних для якоїсь змінної, наприклад string чи number, а ми хочемо з акцентувати, що ми повинні сюди передати лише деякі конкретні виділені слова або числа.
enum TooltipPosition {
Top = 'top',
Bottom = 'bottom',
Left = 'left',
Right = 'right',
};
function setTooltipPosition(position: TooltipPosition): void {
switch (position) {
case TooltipPosition.Top:
console.log(`Position ${TooltipPosition.Top}`);
break;
case TooltipPosition.Bottom:
console.log(`Position ${TooltipPosition.Bottom}`);
break;
case TooltipPosition.Left:
console.log(`Position ${TooltipPosition.Left}`);
break;
case TooltipPosition.Right:
console.log(`Position ${TooltipPosition.Right}`);
break;
}
}
setTooltipPosition('top'); // ERROR: Argument of type '"top"' is not assignable to parameter of type 'TooltipPosition'.
setTooltipPosition(TooltipPosition.Top); // "Position top"
Як видно з даного прикладу, enum дозволяє нам конкретизувати значення яке ми очікуємо а також, помістивжи його в змінну, що позитивно впливає на відлагодження коду, та майбутню його підтримку чи розширення.
Корисні посилання:
Last updated
Was this helpful?