TypeScript wygrał. Oto co nam to właściwie przyniosło.

Nikt już nie dyskutuje o tym, czy używać TypeScripta. Nowe projekty korzystają z niego domyślnie. Debata dobiegła końca.

Prawdziwa wartość nie polega jedynie na wyłapywaniu literówek. To znacznie więcej.

Sygnatura funkcji działa jak dokumentacja. Nigdy nie staje się nieaktualna. Jeśli kod ulegnie zmianie, kompilator przerwie proces budowania.

Spójrz na tę funkcję:

function scheduleReminder(
  userId: string,
  at: Date,
  channel: "email" | "push" | "sms",
): Promise<ReminderId>;

Dokładnie wiesz, jak to wywołać. Wiesz, czego funkcja wymaga i co zwraca. Wiesz, że kanał musi być jedną z trzech konkretnych wartości typu string.

Jeśli później dodasz opcję „slack”, kompilator zmusi Cię do zaktualizowania każdej części kodu. Komentarz po prostu by zardzewiał i wprowadził Cię w błąd.

W kodzie bez typów zmiana nazwy pola budzi lęk. Przeszukujesz ciągi znaków i liczysz na szczęście. W TypeScript zmieniasz typ. Kompilator przygotowuje listę rzeczy do poprawy – wszystkiego, co przestało działać. Refaktoryzacja staje się bezpieczna.

Typy pomagają również w pracy z AI.

Model AI zgaduje strukturę kodu w JavaScript. W TypeScript typ jest specyfikacją. AI wie, co jest dozwolone. Błędy objawiają się jako błędy kompilacji, a nie awarie na produkcji.

Typy działają jak barierki ochronne. Pozwalają korzystać z kodu wygenerowanego przez AI z pewnością siebie, zamiast sprawdzać każdą linię ręcznie.

Pisz lepsze typy, stosując te zasady:

• Używaj unii zamiast wielu wartości boolean. Status taki jak "loading" | "error" | "ready" jest lepszy niż trzy oddzielne flagi. • Nadawaj nazwy typom domenowym. Użyj type Cents = number, aby wyrazić intencję. • Unikaj any. Zamiast tego używaj unknown i zawężaj typ. • Pozwól działać wnioskowaniu typów. Dodawaj adnotacje na granicach, takich jak sygnatury funkcji, ale pozwól reszcie płynąć naturalnie.

TypeScript zmienił bazy kodu w zestawy wymuszonych kontraktów. Kontrakty te umożliwiają bezstresową refaktoryzację i niezawodną pomoc AI.

Zaczęliśmy używać typów, aby eliminować błędy. Kontynuujemy ich używanie, ponieważ stanowią fundament dla wszystkiego innego.

Źródło: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-53lo