W poprzednim poście pokazałem, jak wygląda prosta klasa w TypeScript. Teraz czas by wprowadzić kilka dodatkowych elementów. Jedną z rzeczy, która mocno wyróżnia klasy TypeScript, od tych znanych z klasycznego JavaScript, jest możliwość zastosowania modyfikatorów dostępu.
Czytaj dalej Modyfikatory dostępu – po co mi one?Tag: oop
Klasy w TypeScript
Po nieco teoretycznym spojrzeniu na klasy i obiekty, pora przyjrzeć im się bliżej w TypeScript.
Definicja klasy w TypeScript
To jak wygląda podstawowa definicja klasy w TypeScript niewiele różni się od tego jak wygląda to w JavaScript ES6+
class House { owner : string; constructor(owner : string) { this.owner = owner; } changeOwner(owner : string) : void { this.owner = owner; } getOwner() : string { return this.owner; } }
Zaczynamy od słowa kluczowego class, po którym następuje podanie nazwy dla nowej klasy oraz otwarcie nawiasu klamrowego.
Następnie mamy jedną różnicę. W dodatku taką, która powoduję, że przeklejenie kodu klasy z ES6+ powoduje krzyk i płacz kompilatora. Mianowicie potrzebujemy deklaracji pól, jakie zawiera dana klasa, wraz z typem danych. Jeśli nie podamy będzie niejawnie przypisany typ any. W naszym wypadku jest to stan owner o typie tekstowym string.
Kolejnym elementem w kolejności jest konstruktor, czyli specjalna metoda, która jest wywoływana przy tworzeniu nowych obiektów, na podstawie danej klasy. W TypeScript konstruktory definiujemy za pomocą słówka kluczowego constructor i podania parametrów dla funkcji i logiki biznesowej.
Pamiętajmy, że w konstruktorach, niezależnie od języka programowania, logika powinna być ograniczona do minimum i najlepiej ograniczona do inicjalizacji wartości pól.
Finalnie mamy dwie metody – changeOwner i getOwner. Deklaracja funkcji klasy niczym nie różni się od tej znanej z JavaScript. Podajemy nazwę dla funkcji i listę parametrów.
Finalnie zamykamy nawias klamrowy.
Tworzenie nowych obiektów
Nowe obiekty w TS tworzymy tak samo jak w dziesiątkach innych języków – za pomocą słowa kluczowego new.
const house : House = new House("Pawel");
W kontekście TypeScript ważne jest, że każda klasa definiuje nowy typ. Tak jak wyżej – mamy zmienną o typie wyprowadzonym z klasy – House.
Podsumowanie
Na podstawowym poziomie więc jedyne czego wymaga od nas TypeScript ponad to, co znamy z JavaScript to podanie stanów, jakie posiada owa klasa. Najlepiej wraz z typami, już na początku jej deklaracji.
Dzięki temu od razu wiemy jakie dane przechowywuję klasa, nie musimy analizować całego kodu w poszukiwaniu this.<nazwa stanu>.
Interesuje Cię TypeScript? Wprowadzenie do tego języka jest jednym z darmowych kursów dostępnych na kursy.clockworkjava.pl.
Czym są klasy i obiekty w programowaniu? Podstawy programowania obiektowego.
W tym wpisie oderwiemy się od konkretnego języka programowania. Wzniesiemy się na nieco wyższy poziom abstrakcji (choć przykłady będą dość przyziemne). Dowiemy się czym są w programowaniu klasy i obiekty.
Czytaj dalej Czym są klasy i obiekty w programowaniu? Podstawy programowania obiektowego.Interfejsy w TypeScript
W poprzednim wpisie pokazałem jak tworzyć aliasy typów, czyli pierwszy ze sposobów na tworzenie własnych typów. Tym razem zaprezentuję jak pracować z i stworzyć interfejsy w TypeScript.
Czytaj dalej Interfejsy w TypeScriptJava – Od zera do aplikacji desktopowej. Część 4. Wprowadzenie do Klas
W poprzedniej części utworzyliśmy pierwszy projekt, bez zagłębiania się w to, co piszemy… teraz czas odrobinę rozjaśnić sprawę i wprowadzić pojęcie klasy.
UWAGA! Kurs darmowy, zaktualizowany na stan z roku 2020 dostępny na https://kursy.clockworkjava.pl/java-fundamenty-programowania/
Czytaj dalej Java – Od zera do aplikacji desktopowej. Część 4. Wprowadzenie do Klas