Водич за рад са њим

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

Са ТипеСцрипт-ом ћете моћи раније да ухватите грешке и поправите их. Једна од важних карактеристика ТипеСцрипт-а је Енумс. Енум је популарна конструкција у ТипеСцрипт-у која вам помаже да пишете сигурнији код.

У овом чланку ћу објаснити енуме, како их креирати и користити и многе друге ствари које треба узети у обзир.

Шта је енум?

Енум је скраћеница за набројани тип. Набројани тип података је дефинисан различитим вредностима које променљива тог типа може да има. Различите вредности које може да преузме често се називају чланови или елементи.

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

Такође прочитајте: Најбоље ТипеСцрипт библиотеке и време извођења које треба знати као програмер

Зашто користити енуме?

Енумс вам помаже да одредите које вредности променљива може да садржи. Такође вам помажу да одредите које вредности аргумент функције може да има. Ово помаже да се осигура да програмери увек обезбеђују очекиване вредности променљивим и аргументима функције. Ово ће помоћи у уклањању грешака и помоћи вам да пишете сигурнији и робуснији код.

  Развој људских ресурса (ХРД) наспрам управљања људским ресурсима (ХРМ): Објашњене разлике

Предуслови за рад са енумима

У овом туторијалу показаћу како се ради са енумима у ТипеСцрипт-у. Да бисте пратили овај водич, морате бити у могућности да покренете и извршите ТипеСцрипт код.

Због тога морате да имате инсталиран НодеЈс да бисте извршили свој ЈаваСцрипт код. Ако немате инсталиран ТипеСцрипт, видео испод је водич о томе како да то урадите.

Алтернативно, ако желите одмах да компајлирате и извршите скрипту, користите тс-ноде. Иако ћу то радити у овом чланку, за веће пројекте бих препоручио инсталирање ТипеСцрипт-а. Да бисте извршили скрипту користећи тс-ноде, користите следећу команду:

npx ts-node <scriptname>

Овај чланак такође претпоставља да сте упознати са ЈаваСцрипт-ом и основним ТипеСцрипт-ом.

Рад са једноставним енумом

Како направити једноставан енум

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

enum Direction {
    North,
    East,
    South,
    West
}

Имајте на уму да нема наводника око чланова у енум-у – они нису стрингови.

Како се користи једноставан енум

Набројану вредност додељујете променљивој на следећи начин:

const heading: Direction = Direction.North;

Пошто променљиву додељујемо приликом декларације, ТипеСцрипт може да закључи тип података. Као резултат тога, не морамо да тврдимо тип. Уместо тога, можемо написати ово:

const heading = Direction.North;

Да бисмо сазнали коју вредност има променљива заглавља, можемо је цонсоле.лог.

console.log(heading);

Резултат овога ће бити:

0

Променљива наслова садржи вредност нула иако смо јој доделили вредност Дирецтион.Нортх. То је зато што се сваком члану додељује нумеричка вредност када се креирају набрајања. Првом члану се додељује 0, другом 1 итд. Ево демонстрације:

console.log(Direction.North, Direction.East, Direction.South, Direction.West)

Стога, можете проверити да ли променљива наслова садржи север тако што ћете тврдити да је једнака нули. На пример:

// Asserting equality
let isNorth = heading == 0;

// Printing the result
console.log(isNorth);

Као што је показано раније, Дирецтион.Нортх је једнак 0. Дакле, уместо провере да ли је наслов једнак нули, можемо проверити да ли је једнак Дирецтион.Нортх.

// Checking if direction is North
isNorth = heading == Direction.North;

// Printing the result
console.log(isNorth);

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

  6 разлога због којих не би требало да користите медиј

Рад са прилагођеним вредностима

Када креирате енум, ТипеСцрипт аутоматски додељује нумеричке вредности члановима почевши од нуле. Међутим, можда желите да ваши чланови имају прилагођене вредности уместо подразумеваних, у ком случају можете да их доделите. Овако:

enum StarRating {
    VeryPoor = 1,
    Poor = 2,
    Average = 3,
    Good = 4,
    Excellent = 5
}

Алтернативно, можете урадити следеће:

enum StarRating {
    VeryPoor = 1,
    Poor,
    Average,
    Good,
    Excellent
}

У овом случају, првом члану ће бити додељена вредност 1. Следећи избори ће бити аутоматски увећани у односу на претходни избор. Дакле, сиромашни ће имати оцену 2, просечно 3 итд.

Избори у енум-у немају увек нумеричке вредности, као што ћете видети касније. Међутим, они са нумеричким вредностима ће се понашати као нормални бројеви.

console.log(typeof StarRating.Average);

Ово ће одштампати „број“. То значи да можете да урадите све ствари са бројевима, укључујући и поређења као што су:

console.log(StarRating.Excellent > StarRating.Average)

Ово ће одштампати „тачно“.

Коришћење стрингова као прилагођених вредности

Као што је раније поменуто, избори енума могу имати вредности низа уместо само бројева. Ево како бисте то урадили:

enum Choice {
    RedPill = "Know Everything"
    BluePill = "Know Nothing"
}

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

Хетерогеноус Енумс

Такође можете мешати низове и нумеричке вредности. Ово је обесхрабрено и није баш корисно, али је ипак могуће.

enum Mixed {
    First = "String"
    Second = 2
}

Завршне речи

У овом чланку смо покрили шта су енумови у ТипеСцрипт-у. Разговарали смо и зашто су они важни. Такође смо покрили различите врсте вредности које чланови енума могу имати.

  Како онемогућити кеш меморију у Цхроме-у, Фирефок-у, Сафарију и другим претраживачима

Затим погледајте наш чланак о типу у односу на интерфејс у ​​ТипеСцрипт-у.