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.
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:
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:
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.
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
- TypeScript to JavaScript z typami; typy sprawdza kompilator
tsc, a przed uruchomieniem są wymazywane. - 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.
- Stan na październik 2026: aktualny jest TypeScript 7.0 z kompilatorem w Go i trybem
strictwłączonym domyślnie.
Źródła
- TypeScript Handbook, The Basics (statyczne sprawdzanie typów, wymazywanie typów): https://www.typescriptlang.org/docs/handbook/2/basic-types.html
- Announcing TypeScript 7.0, Microsoft DevBlogs, 8.07.2026: https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/
- Announcing TypeScript 6.0, Microsoft DevBlogs, 23.03.2026: https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/
- Rejestr npm, pakiet typescript (wersja 7.0.2): https://www.npmjs.com/package/typescript