Poradnik, jak z tym pracować

TypeScript to nadzbiór JavaScript, który pomaga pisać kod bezpieczny dla typów.

Dzięki TypeScript będziesz mógł wcześniej wyłapać błędy i je naprawić. Jedną z ważnych funkcji TypeScriptu są wyliczenia. Enum to popularna konstrukcja w TypeScript, która pomaga pisać bezpieczniejszy kod.

W tym artykule wyjaśnię wyliczenia, jak je tworzyć i używać, a także wiele innych rzeczy do rozważenia.

Co to jest wyliczenie?

Enum jest skrótem od typu wyliczeniowego. Wyliczeniowy typ danych jest definiowany przez różne wartości, jakie może przyjmować zmienna tego typu. Różne wartości, jakie może przyjmować, są często nazywane członkami lub elementami.

W tym artykule nazwiemy ich członkami. Wyliczenia to nie tylko funkcja TypeScriptu. Raczej wyliczone typy są również obecne i używane w innych językach programowania. Używanie wyliczeń zapewnia większe bezpieczeństwo typów w programach TypeScript.

Przeczytaj także: Najlepsze biblioteki TypeScript i środowisko wykonawcze, które warto znać jako programista

Dlaczego warto używać wyliczeń?

Wyliczenia pomagają określić, jakie wartości może przechowywać zmienna. Pomagają także określić, jakie wartości może przyjmować argument funkcji. Dzięki temu programiści zawsze dostarczają oczekiwane wartości zmiennym i argumentom funkcji. Pomoże to wyeliminować błędy i pomóc w pisaniu bezpieczniejszego i solidniejszego kodu.

Warunki wstępne pracy z wyliczeniami

W tym samouczku pokażę, jak pracować z wyliczeniami w TypeScript. Aby skorzystać z tego samouczka, musisz umieć uruchamiać i wykonywać kod TypeScript.

Dlatego musisz mieć zainstalowany NodeJs, aby wykonać kod JavaScript. Jeśli nie masz zainstalowanego języka TypeScript, poniższy film jest przewodnikiem, jak to zrobić.

Alternatywnie, jeśli chcesz natychmiast skompilować i wykonać skrypt, użyj ts-node. Chociaż właśnie to zrobię w tym artykule, w przypadku większych projektów zalecałbym zainstalowanie TypeScript. Aby wykonać skrypt za pomocą węzła ts, użyj następującego polecenia:

npx ts-node <scriptname>

W tym artykule założono również, że znasz JavaScript i podstawowy TypeScript.

Praca z prostym wyliczeniem

Jak utworzyć proste wyliczenie

Wyliczenia w TypeScript są tworzone przy użyciu słowa kluczowego enum. Następnie następuje nazwa wyliczenia, a następnie lista elementów składowych, które zawiera wyliczenie. Oto przykład, w którym deklarujemy wyliczenie czterech głównych punktów kompasu.

enum Direction {
    North,
    East,
    South,
    West
}

Należy pamiętać, że elementy wyliczenia nie są ujęte w cudzysłów — nie są to ciągi znaków.

Jak korzystać z prostego wyliczenia

Przypisujesz wyliczoną wartość do zmiennej w następujący sposób:

const heading: Direction = Direction.North;

Ponieważ przypisujemy zmienną po deklaracji, TypeScript może wywnioskować typ danych. W rezultacie nie musimy potwierdzać typu. Zamiast tego możemy napisać tak:

const heading = Direction.North;

Aby dowiedzieć się, jaką wartość ma zmienna nagłówka, możemy ją połączyć w konsoli.log.

console.log(heading);

Rezultatem tego będzie:

0

Zmienna nagłówkowa zawiera wartość zero, mimo że przypisaliśmy jej wartość Direction.North. Dzieje się tak, ponieważ każdemu elementowi członkowskiemu przypisana jest wartość liczbowa podczas tworzenia wyliczeń. Pierwszemu członowi przypisano 0, drugiemu 1 i tak dalej. Oto demonstracja:

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

Dlatego możesz sprawdzić, czy zmienna nagłówka zawiera północ, stwierdzając, że jest ona równa zero. Na przykład:

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

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

Jak pokazano wcześniej, Kierunek.Północ jest równy 0. Zamiast sprawdzać, czy kurs jest równy zero, możemy sprawdzić, czy jest równy Kierunek.Północ.

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

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

Wszystko to jest przydatne; są szanse, że w ten sposób użyjesz wyliczonych wartości. Możesz jednak zrobić więcej, jak zobaczysz później. W następnej sekcji omówiono sposób pracy z wartościami niestandardowymi.

Praca z wartościami niestandardowymi

Kiedy tworzysz wyliczenie, TypeScript automatycznie przypisuje członom wartości liczbowe, zaczynając od zera. Możesz jednak chcieć, aby Twoi członkowie mieli wartości niestandardowe zamiast domyślnych. W takim przypadku możesz je przypisać. Jak tak:

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

Alternatywnie możesz wykonać następujące czynności:

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

W takim przypadku pierwszemu członowi zostanie przypisana wartość 1. Kolejne wybory będą automatycznie zwiększane w stosunku do poprzedniego wyboru. So Poor będzie miał ocenę 2, średnio 3 i tak dalej.

Wybory w wyliczeniu nie zawsze mają wartości liczbowe, jak zobaczysz później. Jednak te z wartościami liczbowymi będą zachowywać się jak normalne liczby.

console.log(typeof StarRating.Average);

Spowoduje to wydrukowanie „numeru”. Oznacza to, że możesz wykonywać wszystkie czynności liczbowe, w tym dokonywać porównań, takich jak:

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

Spowoduje to wydrukowanie „true”.

Używanie ciągów jako wartości niestandardowych

Jak wspomniano wcześniej, opcje wyliczeniowe mogą mieć wartości łańcuchowe, a nie tylko liczby. Oto jak byś to zrobił:

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

W tym przypadku wybory wyliczeniowe będą zachowywać się jak poprzednie. Ponieważ jednak wartości są ciągami znaków, można wykonywać operacje na ciągach, a nie na liczbach, jak w poprzednim przykładzie.

Wyliczenia heterogeniczne

Można także mieszać wartości łańcuchowe i liczbowe. Jest to odradzane i niezbyt przydatne, ale mimo to możliwe.

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

Ostatnie słowa

W tym artykule omówiliśmy, czym są wyliczenia w TypeScript. Rozmawialiśmy także o tym, dlaczego są one ważne. Omówiliśmy także różne rodzaje wartości, jakie mogą posiadać elementy wyliczeniowe.

Następnie zapoznaj się z naszym artykułem na temat typu a interfejsu w TypeScript.