TypeScript to potężne narzędzie, ale nawet z włączonym strict mode kompilator nie wyłapie wszystkiego. Przetestowaliśmy trzy darmowe narzędzia — ESLint, DeepSource i Prettier — które uzupełniają tsc i pomagają utrzymać kod wolny od błędów typów, bez wydawania ani złotówki.
ESLint z @typescript-eslint to standard branży — oferuje type-aware linting, który wyłapuje błędy pomijane przez kompilator TypeScript. Darmowy, szeroko wspierany i niezbędny w każdym projekcie.
DeepSource automatyzuje analizę kodu w CI/CD — skanuje każdy pull request i proponuje autofixy. Idealny, gdy zespół potrzebuje egzekwować standardy bez polegania na lokalnych konfiguracjach.
Prettier eliminuje szum w diffach dzięki automatycznemu formatowaniu. Sam nie sprawdza typów, ale bez niego recenzja kodu pod kątem typów jest znacznie trudniejsza.
TypeScript to dziś standard w poważnym frontendzie — ale sam kompilator, nawet z strict: true w tsconfig.json, nie wyłapie wszystkiego. Istnieje cały ekosystem darmowych narzędzi, które uzupełniają statyczną analizę typów, automatyzują wykrywanie błędów i pilnują spójności kodu. Przetestowaliśmy trzy z nich — ESLint, DeepSource i Prettier — żeby sprawdzić, co realnie wnosi każde z nich do codziennej pracy z TypeScriptem. Oto the things actually worth installing.
Kompilator TypeScript (tsc) z włączonym strict: true to solidna podstawa — wykrywa null/undefined, niejawną any i inne typowe pułapki. Ale nie sprawdzi, czy formatowanie kodu jest spójne, czy importy są nieużywane, ani czy nie popełniasz subtelnych błędów logicznych, które kompilator przepuści. Tu wkraczają narzędzia zewnętrzne, które działają na poziomie AST i reguł semantycznych1.
ESLint od lat jest de facto standardem lintera w ekosystemie JavaScript. Dla TypeScript kluczowa jest wtyczka @typescript-eslint/eslint-plugin, która dodaje reguły świadome typów — tzw. type-aware linting. ESLint wyłapuje błędy, które kompilator TypeScript pomija: nieużywane zmienne, nieprawidłowe rzutowania, brakujące przypadki w switch czy potencjalne wycieki pamięci1.
Konfiguracja sprowadza się do kilku linijek:
{
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking"
]
}Dzięki integracji z edytorami (VS Code, WebStorm) błędy widzisz natychmiast podczas pisania kodu, a nie dopiero przy kompilacji. To narzędzie, które powinno znaleźć się w każdym projekcie TypeScript — i jest w 100% darmowe.
Zakres: Statyczna analiza kodu z regułami świadomymi typów.
DeepSource to platforma do statycznej analizy kodu, która działa w tle — podłączasz ją do repozytorium GitHub, GitLaba lub Bitbucketa, a ona automatycznie skanuje każdy pull request pod kątem błędów typów, antypatternów i luk bezpieczeństwa1. Dla TypeScript oferuje zestaw autofixów — sama poprawia wykryte problemy i proponuje zmiany.
W przeciwieństwie do ESLinta, który działa lokalnie, DeepSource egzekwuje standardy na poziomie całego zespołu. Nie musisz polegać na tym, że każdy programista ma włączonego lintera w edytorze — analiza odbywa się na serwerze, a wyniki trafiają bezpośrednio do review procesu.
Zakres: Automatyczna analiza CI/CD z autofixami.
Prettier to uparty formatter kodu — i to jego największa zaleta. Nie daje opcji konfiguracji stylu, bo jego celem jest wyeliminowanie dyskusji o formatowaniu w zespole. W kontekście TypeScript Prettier odgrywa kluczową rolę: spójne formatowanie oznacza, że diff w pull requeście pokazuje tylko rzeczywiste zmiany typów i logiki, a nie przesunięcia nawiasów czy spacji1.
Prettier integruje się z ESLintem (poprzez eslint-config-prettier, który wyłącza kolidujące reguły) i działa zarówno lokalnie, jak i w hookach git (Husky + lint-staged). Nie sprawdza typów — ale bez niego recenzja kodu pod kątem typów jest o wiele trudniejsza.
Zakres: Automatyczne formatowanie kodu.
| Narzędzie | Zakres działania | Typ analizy | Integracja z CI/CD |
|---|---|---|---|
| ESLint | Statyczna analiza kodu | Type-aware linting | ✅ (przez skrypt) |
| DeepSource | Analiza w CI/CD | Automatyczna z autofixami | ✅ (natywna) |
| Prettier | Formatowanie kodu | Automatyczne formatowanie | ✅ (przez hooki) |
Optymalny zestaw narzędzi w projekcie TypeScript wygląda tak:
tsconfig.json z "strict": true — podstawa.@typescript-eslint — lokalna analiza w edytorze.pre-commit.Taka konfiguracja pokrywa 99% błędów typów i stylu — i nic nie kosztuje. TypeScript Playground to z kolei świetne miejsce do szybkiego testowania typów w izolacji2, ale do realnego projektu potrzebujesz całego powyższego zestawu.
Artykuł zawiera linki afiliacyjne. Jeśli zdecydujesz się skorzystać z polecanych narzędzi, możemy otrzymać prowizję — nie wpływa to jednak na nasze rekomendacje ani na cenę, jaką płacisz.
| Wybór | Cena | Typ analizy | Koszt | Integracja z CI/CD | |
|---|---|---|---|---|---|
ESLint ▶ Wybór | — | Type-aware linting | Całkowicie darmowy | Przez skrypt npm | Sprawdź cenę ↗ |
DeepSource doskonałe uzupełnienie | — | Automatyczna z autofixami | Darmowy (plan podstawowy) | Natywna (GitHub/GitLab) | Sprawdź cenę ↗ |
Prettier warto mieć | — | Automatyczne formatowanie | Całkowicie darmowy | Przez hooki git | Sprawdź cenę ↗ |
Chcesz dopytać o coś, czego artykuł nie wyjaśnił? Zapytaj silnik — niesie kontekst artykułu.
Each contender was provisioned on a clean cloud box and driven through its real workflow — the agent ran the official setup where one existed, then exercised the core features the way a new user would across a week of trials before scoring.