Development

TypeScript: Dlaczego Porzuciliśmy Czysty JavaScript

Jak przejście na TypeScript poprawiło jakość kodu i zmniejszyło liczbę bugów w naszych projektach.


"Cannot read property 'x' of undefined" - ten błąd widział każdy programista JavaScript. W produkcji. O 3 w nocy. Po tym jak klient zgłosił, że "strona nie działa". TypeScript nie jest idealny, ale eliminuje całą klasę takich problemów.

-40% bugów runtime po migracji na TypeScript (nasze dane)

Co TypeScript daje w praktyce?

JavaScript
function getUser(id) { return fetch('/api/users/' + id) .then(r => r.json()); } // Co zwraca? Nie wiadomo. // Jakie ma pola? Nie wiadomo. // Czy id to string czy number? Nie wiadomo.
TypeScript
interface User { id: number; name: string; email: string; } async function getUser(id: number): Promise { const r = await fetch(`/api/users/${id}`); return r.json(); } // Wszystko jasne. IDE podpowiada.

5 powodów, dla których przeszliśmy na TypeScript

1

Autocomplete na sterydach

Nie musisz pamiętać nazw pól. IDE podpowiada. Nie musisz szukać w dokumentacji - typy SĄ dokumentacją.

2

Bezpieczna refaktoryzacja

Zmieniasz nazwę pola w interfejsie - TypeScript pokazuje WSZYSTKIE miejsca, które się psują. W JS? Ctrl+F i nadzieja.

3

Błędy przed deployem, nie po

Przekazałeś string zamiast number? TypeScript krzyczy w edytorze, nie w konsoli przeglądarki użytkownika.

4

Onboarding nowych osób

Nowy programista otwiera kod, widzi typy, rozumie strukturę. Bez TypeScript? "Zapytaj Marka, on to pisał 2 lata temu".

5

Lepsze review kodu

Reviewer widzi co funkcja przyjmuje i zwraca. Nie musi zgadywać ani uruchamiać kodu mentalnie.

Wyniki po migracji (projekt 50k+ linii)

-40% błędów typu runtime
-60% czasu na onboarding
+30% szybkość refaktoryzacji
98% coverage strict mode

Jak migrować? Krok po kroku

Krok 1
Zmień rozszerzenia .js → .ts

TypeScript jest nadzbiorem JS. Twój kod JS jest prawidłowym kodem TS. Zacznij od tego.

Krok 2
Włącz strict: false w tsconfig

Pozwól TypeScriptowi kompilować bez wymuszania typów. Stopniowo dodawaj typy gdzie potrzebujesz.

Krok 3
Dodaj typy do nowego kodu

Każdy nowy plik = pełne typy. Stary kod typujesz przy okazji zmian (boy scout rule).

Krok 4
Włącz strict: true

Gdy większość kodu jest otypowana - włącz strict mode. Napraw błędy. Gratulacje!

Kiedy TypeScript może nie być najlepszy?

Prototypy i hackatony - gdy liczy się szybkość nad jakością, typy spowalniają. Ale potem i tak przepiszesz.

Bardzo mały projekt - 200 linii kodu? Overhead konfiguracji może nie być wart.

Zespół nie chce się uczyć - TypeScript wymaga buy-in. Jeden człowiek piszący typy, a reszta `any` = strata czasu.

Planujesz migrację na TypeScript?

Pomożemy zaplanować migrację, przeszkolimy zespół i ustalimy standardy typowania dla Waszego projektu.

Kategoria: Development
Udostępnij:

Tomasz Wróbel

Ekspert Halo Soft

Potrzebujesz pomocy z podobnym projektem?

Skontaktuj się z nami - chętnie pomożemy!

Powiązane artykuły