Читать книгу Programowanie w TypeScript - Boris Cherny - Страница 5
ОглавлениеSpis treści
3. Cała prawda o typach
Omawianie typów
Abecadło typów
any
unknown
boolean
number
bigint
string
symbol
Obiekty
Przerwa: aliasy, unie i przecięcia typów
Tablice
Krotki
null, undefined, void oraz never
enum
Podsumowanie
Ćwiczenia
4. FunkcjeDeklarowanie i wywoływanie funkcji
Parametry opcjonalne i domyślne
Parametry reszty
call, apply oraz bind
Typ zmiennej this
Funkcje generatora
Iteratory
Sygnatury wywołań
Wnioskowanie typów z kontekstu
Przeciążone typy funkcji
Polimorfizm
Kiedy wiązane są typy ogólne?
Gdzie można deklarować typy ogólne?
Wnioskowanie typu ogólnego
Aliasy typów ogólnych
Ograniczony polimorfizm
Domyślne typy ogólne
Programowanie sterowane typami
Podsumowanie
Ćwiczenia
5. Klasy i interfejsy
Klasy i dziedziczenie
super
Wykorzystywanie this jako zwracanego typu
Interfejsy
Scalanie deklaracji
Implementacje
Implementowanie interfejsów a rozszerzanie klas abstrakcyjnych
Klasy są typowane strukturalnie
Klasy deklarują zarówno wartości, jak i typy
Polimorfizm
Domieszki
Dekoratory
Symulowanie klas typu final
Wzorce projektowe
Wzorzec Fabryka
Wzorzec Budowniczy
Podsumowanie
Ćwiczenia
6. Typy zaawansowaneRelacje między typami
Typy podrzędne i nadrzędne
Wariancja
Zasady przypisywalności
Rozszerzanie typów
Uściślanie
Kompletność
Zaawansowane typy obiektów
Operatory na typach obiektów
Typ Record
Typy mapowane
Wzorzec obiektu towarzyszącego
Zaawansowane typy funkcji
Poprawianie wnioskowania typów dla krotek
Dozory typów definiowane przez użytkownika
Typy warunkowe
Rozdzielne warunki
Słowo kluczowe infer
Wbudowane typy warunkowe
Drogi ewakuacyjne
Asercje typów
Asercje wykluczające null
Asercje pewnego przypisania
Symulowanie typów nominalnych
Bezpieczne rozszerzanie prototypu
Podsumowanie
Ćwiczenia
7. Obsługa błędów
Zwracanie wartości null
Zgłaszanie wyjątków
Zwracanie wyjątków
Typ Option
Podsumowanie
Ćwiczenia
8. Programowanie asynchroniczne, współbieżność i równoległość
Pętla zdarzeń JavaScriptu
Stosowanie wywołań zwrotnych
Przywracanie porządku przy użyciu obietnic
async i await
Strumienie asynchroniczne
Emitery zdarzeń
Wielowątkowość z zachowaniem bezpieczeństwa typów
W przeglądarce: przy użyciu Web Workers
W NodeJS: z procesami podrzędnymi
Podsumowanie
Ćwiczenia
9. Frameworki front-end i back-endFrameworki front-end
React
Angular
API zapewniające bezpieczeństwo typów
Frameworki back-end
Podsumowanie
10. Przestrzenie nazw. Moduły
Krótka historia modułów JavaScriptu
import, eksport
Dynamiczne importy
Wykorzystywanie kodu CommonJS i AMD
Tryb modułu a tryb skryptu
Przestrzenie nazw
Kolizje
Wynik kompilacji
Scalanie deklaracji
Podsumowanie
Ćwiczenie
11. Współdziałanie z językiem JavaScriptDeklaracje typów
Otaczające deklaracje zmiennych
Otaczające deklaracje typów
Otaczające deklaracje modułów
Stopniowa migracja z JavaScriptu do TypeScriptu
Krok 1: Dodanie TSC
Krok 2a: Włączenie sprawdzania typów dla JavaScriptu (opcjonalnie)
Krok 2b: Dodanie adnotacji JSDoc (opcjonalne)
Krok 3: Zmienianie nazw plików na .ts
Krok 4: Włączenie ścisłej kontroli typów
Wyszukiwanie typów dla JavaScriptu
Wykorzystywanie zewnętrznego kodu JavaScriptu
JavaScript, który zawiera deklaracje typów
JavaScript, który ma deklaracje typów w DefinitelyTyped
JavaScript, który nie ma deklaracji typów na DefinitelyTyped
Podsumowanie
12. Budowanie i uruchamianie TypeScriptuBudowanie projektu TypeScriptu
Układ projektu
Artefakty
Ustawianie środowiska docelowego kompilacji
Włączanie map źródeł
Odwołania projektów
Monitorowanie błędów
Wykonywanie TypeScriptu na serwerze
Wykonywanie TypeScriptu w przeglądarce
Publikowanie kodu TypeScriptu w NPM
Dyrektywy z trzema ukośnikami
Dyrektywa types
Dyrektywa amd-module
Podsumowanie
13. Wnioski
A. Operatory na typach
B. Typy pomocnicze
C. Deklaracje w zakresie
D. Wskazówki do pisania plików deklaracji dla zewnętrznych modułów JavaScriptu
E. Dyrektywy z potrójnym ukośnikiem
F. Flagi kompilatora TSC podnoszące bezpieczeństwo
G. TSX
O autorze