Przejdź do treści
TypeScript od podstawModuł 1 · lekcja 1 z 3
Za darmo4 min czytania

Moduł 1 · Pierwsze kroki z TypeScript

Czym jest TypeScript i co sprawdza kompilator

Po tej lekcji zrozumiesz, czym TypeScript różni się od JavaScriptu, co dokładnie sprawdza kompilator i czego nie sprawdzi nigdy. Poznasz też przykład, na którym pracujesz przez cały kurs: system rezerwacji fikcyjnej wypożyczalni rowerów Rowerownia z Lublina.

JavaScript z typami, nie nowy język

TypeScript to JavaScript z dopisanymi typami. Każdy poprawny kod JavaScript jest poprawnym składniowo kodem TypeScript, a TypeScript dokłada do niego jedną rzecz: opis tego, jakie wartości mogą trafić do zmiennej, parametru funkcji albo pola obiektu. Ten opis czyta kompilator tsc i na jego podstawie zgłasza błędy, zanim uruchomisz program.

Najważniejsza zasada, którą warto zapamiętać od pierwszej lekcji: typy znikają przed uruchomieniem. Przeglądarka i Node.js wykonują zwykły JavaScript. Adnotacja : number nie zamienia tekstu na liczbę i nie zatrzyma programu, gdy z formularza przyjdzie "abc". Dokumentacja TypeScript nazywa to wymazywaniem typów (type erasure): po kompilacji z kodu zostaje JavaScript bez śladu adnotacji.

Skoro typy znikają, po co je pisać? Bo błąd znaleziony w edytorze kosztuje kilka sekund, a błąd znaleziony przez klienta w aplikacji kosztuje reklamację, poprawkę i wdrożenie.

Droga kodu TypeScript od edytora do uruchomienia

Na podstawie TypeScript Handbook, The Basics. Stan na październik 2026.

Błąd, którego JavaScript nie zauważy

Rowerownia ma trzy punkty w Lublinie: Stare Miasto, Czechów i Zalew. Rower miejski kosztuje 9 zł za godzinę, czyli 900 groszy (w całym kursie ceny trzymamy w groszach, żeby uniknąć błędów zaokrągleń). Programista liczy koszyk klienta, a jedna z cen przyszła z formularza jako tekst:

JavaScript
let suma = 0; for (const c of [900 * 2, "1400"]) suma += c; console.log(suma); // "18001400"

JavaScript nie zgłosi błędu. Operator + zobaczy tekst i sklei napisy, więc zamiast 3200 groszy klient dostanie kwotę „18001400”. Ten sam kod w pliku .ts, z funkcją przyjmującą number[], nie przejdzie kontroli:

TypeScript
function sumaKoszyka(ceny: number[]): number { let suma = 0; for (const c of ceny) suma += c; return suma; } sumaKoszyka([900 * 2, "1400"]); // error TS2322: Type 'string' is not assignable to type 'number'.

Komunikat mówi wprost: w miejscu, gdzie miała być liczba, jest tekst. Kod błędu (tu TS2322) przydaje się, gdy szukasz wyjaśnienia w dokumentacji albo w wyszukiwarce.

Co sprawdza kompilator, a czego nie

Kompilator TypeScript sprawdza zgodność typów w kodzie, który widzi: czy przekazujesz właściwe argumenty, czy odwołujesz się do istniejących pól (literówka lenght zamiast length zostanie wyłapana), czy obsłużyłeś wartość undefined. Nie sprawdza danych, które przyjdą dopiero w czasie działania programu: odpowiedzi z API, zawartości pliku JSON, tekstu wpisanego przez klienta. Takie dane trzeba zweryfikować kodem, czym zajmiesz się w module 3.

JavaScript i TypeScript w codziennej pracy

Ostatnie dwa wiersze są takie same: typy nie zastępują walidacji danych.

TypeScript w październiku 2026

Stan na październik 2026: aktualna wersja to TypeScript 7.0 (wydana 8 lipca 2026, poprawka 7.0.2). Zespół TypeScript przepisał w niej kompilator na język Go. Według ogłoszenia wydania pełne budowanie dużych projektów przyspieszyło zwykle od 8 do 12 razy, a sprawdzanie typów działa tak samo jak w wersji 6.0. Wersja 6.0 (marzec 2026) zmieniła ustawienia domyślne, między innymi tryb strict jest włączony od razu. W tym kursie pracujesz na TypeScript 7.0 i Node.js 24 LTS.

Dla Ciebie jako osoby, która zaczyna, najważniejsze są dwie rzeczy. Po pierwsze, polecenie npm install -D typescript instaluje dziś wersję 7, więc materiały sprzed 2026 roku mogą pokazywać inne ustawienia domyślne. Po drugie, niektóre narzędzia (np. wtyczki do Vue, Svelte, Astro) przez jakiś czas korzystają jeszcze z TypeScript 6.0, bo wersja 7.0 nie ma jeszcze programowego API. Ogłoszenie wydania opisuje, jak zainstalować obie wersje obok siebie.

Najważniejsze w 3 punktach

  1. TypeScript to JavaScript z typami; typy sprawdza kompilator tsc, a przed uruchomieniem są wymazywane.
  2. Kompilator łapie niezgodności w kodzie (zły typ argumentu, literówki w polach), ale nie sprawdza danych z zewnątrz: te waliduje się kodem.
  3. Stan na październik 2026: aktualny jest TypeScript 7.0 z kompilatorem w Go i trybem strict włączonym domyślnie.

Źródła

Materiały do pobrania

Pliki do ćwiczeń są dostępne w abonamencie.

  • Pierwszy projekt TypeScript, koszyk i podstawowe typyModuł 1: package.json i tsconfig.json, witaj.ts (lekcja 2), start/koszyk.ts i start/typy.ts z błędami do poprawienia, rozwiązania lekcji 1–34 KBDostępne w abonamencie
  • Cennik z rabatami, modele roweru i rezerwacji, przychód według punktuModuł 2: modele.ts, cennik.ts, start/funkcje.ts, start/obiekty.ts, start/tablice.ts i rozwiązania z wynikami kontrolnymi6 KBDostępne w abonamencie
  • Zawężanie typów, płatności i 20 rezerwacji z błędamiModuł 3: zawezanie.ts, start/platnosci.ts (never), start/walidacja.ts, dane/rezerwacje-z-bledami.json i rozwiązania6 KBDostępne w abonamencie
  • 150 rezerwacji z września 2026, grupowanie, indeks i typy narzędzioweModuł 4: dane/rowery.json, dane/rezerwacje.json, dane.ts ze strażnikami typu, start/grupowanie.ts, start/indeks.ts, start/zmiany.ts i rozwiązania10 KBDostępne w abonamencie
  • Raport w modułach, klasa Wypozyczalnia i kurs euro z API NBPModuł 5: raport.ts, wypozyczalnia.ts, nbp.ts, start/konflikty.ts, start/cena-w-euro.ts, rozwiązania (w tym override)12 KBDostępne w abonamencie
  • Ścisła konfiguracja, testy node:test i migracja starego JavaScriptuModuł 6: tsconfig.json z opcjami ostrzejszymi niż strict, start/scisle.ts, testy cennika i wypożyczalni, stary-kod/ z JSDoc i plikiem .d.ts do napisania13 KBDostępne w abonamencie
  • Projekt końcowy: miesięczny raport Rowerowni (szablon i rozwiązanie)Moduł 7: start/ (szablon z testami), rozwiazanie/ (5 testów), eksport 155 rekordów, kontrola.py, README z wynikami kontrolnymi i kluczem oceny21 KBDostępne w abonamencie

Następna: Pierwszy projekt: Node.js, tsc i komunikaty błędów

20 lekcji, pliki i certyfikat w abonamencie.

Program kursu

Karta wymagana · anulujesz jednym kliknięciem · Mam już konto