Кључ за јасноћу кода

ТипеСцрипт енумс је фраза која ће се често сусрести када се бавите језиком ТипеСцрипт.

ТипеСцрипт је међу најмлађима, али је такође рангиран као један од најпопуларнијих програмских језика код програмера. ТипеСцрипт је проширење (суперскуп) ЈаваСцрипт-а. Дакле, сваки важећи ЈаваСцрипт код је такође важећи у ТипеСцрипт-у. Међутим, ТипеСцрипт уводи могућности статичног куцања (функција која недостаје у ЈаваСцрипт-у).

Шта су ТипеСцрипт енумови, њихови случајеви употребе и како их можете креирати? Овај чланак ће покрити све што треба да знате о Енумсу.

Шта су ТипеСцрипт енумови?

Енуми (набројани типови) су структуре података константне дужине које садрже скуп непроменљивих вредности (константе). ТипеСцрипт није једини језик који користи Енумс, јер су доступни у објектно оријентисаним језицима као што су Ц# и Јава.

У ТипеСцрипт-у, енумови омогућавају програмерима да креирају скуп различитих случајева или намеру документа. Они су такође важни у постављању вредности или својстава која могу бити само одређени број вредности. На пример, на свету може постојати само седам континената.

Укратко, ТипеСцрипт енумови су важни на следеће начине;

  • Они су флексибилни јер омогућавају програмерима да лако документују и изразе намере и случајеве употребе
  • Енумови омогућавају програмерима да креирају енергетски ефикасне прилагођене константе у ЈаваСцрипт-у
  • Чува време компајлирања и извођења приликом компајлирања ТипеСцрипт кода у ЈаваСцрипт код

ТипеСцрипт Енумови могу бити стрингови или у нумеричком облику. Међутим, ови енуми су претходно обрађени и не пролазе кроз тестирање током фазе тестирања. ТипеСцрипт преводи/конвертује енуме у ЈаваСцрипт код.

Различити енумови у ТипеСцрипт-у

Сада када разумете Енумс, време је да их видите како раде у ТипеСцрипт-у. Можете да подесите развојни сервер тако што ћете преузети ТипеСцрипт и Ноде.јс на своју локалну машину или користећи онлајн решења. Користићемо ТипеСцрипт Плаигроунд да демонстрира различите ТипеСцрипт енуме.

Ово су различити типови енума у ​​ТипеСцрипт-у;

  Сви Цоунтер Блок кодови за откуп: Искористите одмах

#1. Нумеричке набрајања

Морате да користите кључну реч ‘енум’ и да је пратите са именом енума који желите да креирате. Након тога, креирате кари заграде које ће специфицирати чланове енума. Ово је пример нумеричког енума;

enum CardinalDirections {
  North = 5,
  East,
  South,
  West,
};

Горе наведено представља енум под називом ЦардиналДирецтионс који има четири члана. У овом случају, могу постојати само четири вредности (север, исток, југ и запад), што чини енум одличним избором за чување података.

Доделио сам ЦардиналДирецтионс.Нортх вредност 5. Међутим, нисам доделио друге вредности јер ће ТипеСцрипт све остало урадити аутоматски. На пример, вредност за ЦардиналДирецтионс.Еаст ће бити 6 пошто ТипеСцрипт повећава претходну вредност за 1.

ЦардиналДирецтионс.Вест ће бити 8.

Шта ако не доделимо вредност првој ставци унутар кари заграда? Наш енум ће бити;

enum CardinalDirections {
  North,
  East,
  South,
  West,
};

ТипеСцрипт ће аутоматски доделити северну вредност 0. Ако унесете нешто попут ЦардиналДирецтионс.Вест, добићете 3

#2. Стринг енумс

Сваки члан стринг енума мора бити иницијализован другим чланом набрајања стрингова или литералом стринга. Ово је пример енума стрингова;

enum Direction {
  Up = "UP",
  Down = "DOWN",
  Left = "LEFT",
  Right = "RIGHT",
}

Овај енум се не повећава као што се дешава у нумеричким набрајањима. Ако покренете овај код;

enum Direction {
  Up = "UP",
  Down = "DOWN",
  Left = "LEFT",
  Right = "RIGHT",
}
console.log(Direction.Right)

Ово је оно што добијате;

„ЈЕЛ ТАКО“

#3. Хетерогене набрајања

Можете мешати нумеричке и стрингове да бисте формирали хетерогени енум. Ово је пример;

enum HeterogeneousEnum {
  No = 0,
  Yes = "YES",
}

#4. Константни и израчунати чланови набрајања

Чланови енума имају вредности повезане са њима, које могу бити ‘константне’ или ‘израчунате’.

Ово је пример константног набрајања;

enum E1 {
  X,
  Y,
  Z,
}

У овом случају, први члан енума нема иницијализатор, а ТипеСцрипт му додељује вредност 0.

Такође можете узети у обзир овај пример;

enum E1 {
  X=1,
  Y,
  Z,
}

Ово је такође константно набрајање, пошто је првом члану додељена вредност, а инкрементално правило се примењује на остале.

Израчунати енумови мешају константне и израчунате чланове. Погледајте овај пример;

enum Color {
  Red = 100,
  Green = (Math.random() * 100),
  Blue = 200
}

Енум члан ‘Блуе’ је стални члан. С друге стране, члан енума ‘Греен’ је енум који се израчунава помоћу функције Матх.рандом() током времена извођења.

  Инстаграм Реелс против ТикТок-а

#5. Цонст енумс

цонст набрајања се користе за побољшање перформанси нумеричких набрајања. У овом случају, енум декларишемо као конст.

Узмите у обзир овај код који показује дане у недељи;

enum Weekday {
  Monday = 1,
  Tuesday,
  Wednesday,
  Thursday,
  Friday
}

Ако покренемо цонсоле.лог(Веекдаи.Тхурсдаи), добићемо одговор као 4. Међутим, ако проверимо ЈаваСцрипт генерисан у време компајлирања, добићемо ово;

"use strict";
var Weekday;
(function (Weekday) {
    Weekday[Weekday["Monday"] = 1] = "Monday";
    Weekday[Weekday["Tuesday"] = 2] = "Tuesday";
    Weekday[Weekday["Wednesday"] = 3] = "Wednesday";
    Weekday[Weekday["Thursday"] = 4] = "Thursday";
    Weekday[Weekday["Friday"] = 5] = "Friday";
})(Weekday || (Weekday = {}));
console.log(Weekday.Thursday);

Можемо да променимо овај код и прогласимо ‘Дани у недељи’ као константу;

const enum Weekday {
  Monday = 1,
  Tuesday,
  Wednesday,
  Thursday,
  Friday
}

Ако покренемо овај код цонсоле.лог(Веекдаи.Тхурсдаи), ЈаваСцрипт који ће бити генерисан у време компајлирања ће бити;

"use strict";
console.log(4 /* Weekday.Thursday */);

Можете видети да је ЈаваСцрипт код у време компајлирања оптимизован када декларишете свој енум као цонст.

#6. Амбиент енумс

Амбијентални енумови користе кључну реч ‘децларе’ да опишу облик већ постојећих типова набрајања. Размотрите овај пример;

declare enum Color {
  Red,
  Green,
  Blue
}

Амбијентални енуми се декларишу изван било ког модула и могу се користити за креирање типова за вишекратну употребу. Као такав, увек можете да увезете амбијенталне енуме и да их користите у својим компонентама све док су декларисани глобално.

Сада разумете различите типове енума у ​​ТипеСцрипт-у. Сада можемо показати како можете користити енуме на различите начине. Ово ће бити наш референтни код;

enum Direction {
  North="N",
  East="E",
  South="S",
  West="W",
};

Ово су неки случајеви употребе;

  • Издвојите чланове енума. На пример, ако желимо да приступимо северу, можемо да користимо

цонсоле.лог(Дирецтион.Нортх); // Излази: ‘Н’

  • Користите чланове набрајања: Можете одабрати одређени члан набрајања да представља одређени правац. На пример,
const currentDirection = Direction.East;
console.log(`The current direction is ${currentDirection}`);

Ово ће дати овај излаз „Смер струје је Е“

Енумс у односу на мапе објеката у ТипеСцрипт-у

Енумови се користе за представљање коначног скупа вредности. На пример, дугиним бојама или данима у недељи. Енумови су снажно откуцани, што значи да хватају све грешке током развоја. Ово је пример ТипеСцрипт енума;

enum Color {
  Red,
  Green,
  Blue,
}

Мапе објеката/ речници/ парови кључ-вредност чувају и преузимају вредности повезане са одређеним кључевима. Можете користити ТипеСцрипт мапе објеката за складиштење било које врсте података. Међутим, они нису стриктно откуцани, што значи да грешке у типу можда неће бити ухваћене током развоја. Ово је пример мапе објеката истих боја;

const colors = {
  red: "FF0000",
  green: "00FF00",
  blue: "0000FF",
};

Главне разлике између енума и мапа објеката у ТипеСцрипт-у су;

  • Енуми су стриктно откуцани, док мапе објеката нису
  • Енумови су ‘Тип’, док су мапе објеката структура података
  • Енумови нису флексибилни, док су мапе објеката флексибилне
  РесумеГениус вс МиПерфецтРесуме – који алат за прављење животописа треба да одаберете?

Најбоље праксе коришћења енума у ​​ТипеСцрипт-у

Већ смо рекли да ТипеСцрипт није једини програмски језик са функцијом енумс. Праћење најбољих пракси осигурава да пишете чист, оптимизован код без грешака. Ово су неке од најбољих пракси при писању/коришћењу ТипеСцрипт енума;

  • Упишите велика слова у називима енума: Увек пишите великим словима прву реч када именујете енум. На пример, увек је препоручљиво имати енум ‘Нумбер’ уместо ‘нумбер’.
  • Користите енуме за константе: Енуме се најбоље користе за декларисање фиксног скупа повезаних ставки. На пример, може бити само 7 дана у недељи. Чланови енума никада не би требало да се мењају током извршавања.
  • Избегавајте прекомерну употребу енума: Можда сте управо научили нови концепт и желите да га користите скоро свуда у свом ТипеСцрипт пројекту. Међутим, увек користите ТипеСцрипт енуме умерено. ТипеСцрипт енуме су добар избор када желите да задржите читљивост кода.
  • Разматрајте набрајања као набрајања: ТипеСцрипт енуме можете користити у различите сврхе. Међутим, најбоља опција је да их користите за представљање само енума, а не и других структура података.
  • Избегавајте аутоматске набрајања: ТипеСцрипт додељује вредности члановима енума ако их не доделите експлицитно. Дајте својим набрајањима вредности и избегавајте неочекивано понашање када извршавате свој код.
  • Набрајања докумената: Увек документујте или коментаришите свој код ако намеравате да га користи шира јавност. Објасните шта сваки енум ради и зашто је најбољи случај употребе.

Такође можете истражити најбоље ТипеСцрипт библиотеке и време извођења да бисте знали као програмер.

Закључак

Можете дефинисати енуме у ТипеСцрипт-у и објаснити различите типове и случајеве њихове употребе. ТипеСцрипт ће вам добро доћи када желите да имате јасноћу кода. Међутим, постоје и случајеви у којима би требало да их избегавате и уместо њих користите објекте.

На пример, не би требало да користите енуме када радите са динамичким вредностима. Такође не можете користити енуме као променљиве; ваш програм ће вратити грешке.

Можете сазнати више о разликама између ТипеСцрипт-а и ЈаваСцрипт-а ако сте још увек збуњени ова два.