Hodnoty vývojáře TypeScriptu

2026-09-10

TypeScript je můj hlavní jazyk a za ta léta přestal být pouhou technickou volbou a stal se souborem hodnot. Nejde o pravidla z příručky stylu, ale o návyky, které rozhodují, zda se bude kódová základna příjemně měnit i po dvou letech a příchodu tří nových vývojářů.

Poctivost před pohodlím. Režim strict je zapnutý od prvního commitu. any je hlášení chyby, ne typ; pokud skutečně neznám tvar dat, použiji unknown a postupně typ zúžím. Typ, který lže — například přetypování as, jímž umlčím kompilátor — je horší než žádný typ, protože mu všichni v navazujícím kódu důvěřují. Když si kompilátor stěžuje, obvykle má pravdu; oprava patří do dat, ne do anotace.

Učiň nemožné stavy nemožnými. Místo isLoading, isError a data jako tří příznaků, které si mohou odporovat, používám diskriminovanou unii: idle, loading, success s daty a error s důvodem. Totéž platí pro doménové stavy: zaplacená objednávka má paymentId, nezaplacená ne. switch s úplnou kontrolou přes never změní zapomenutou větev z produkčního incidentu na červenou čáru v editoru.

Důvěřuj uvnitř, ověřuj na hranicích. Typy za běhu zmizí, proto všechno, co překročí hranici — tělo HTTP, webhook, formulář, localStorage či odpověď LLM — parsujeme pomocí Zodu nebo podobného schématu a typ odvozujeme z něj. Jeden zdroj pravdy zabrání rozdílu mezi tím, co ověřujeme, a čemu věříme. Uvnitř aplikace pak typovaná data proudí bez obranných kontrol na každém řádku.

Sdílej kontrakty, ne dohady. Ve full-stack produktu se typy API generují nebo sdílejí z OpenAPI, GraphQL Codegenu, Prismy či společného balíčku. Přejmenované pole tak rozbije build, nikoli dokončení platby. Čitelnost je důležitější než chytrost: jednoduché interface, kterému nový kolega porozumí za deset sekund, má větší cenu než pět úrovní conditional type dokazujících, že jsem četl příručku. Generics slouží k opakovanému použití, ne k předvádění.

Typy nenahrazují testy, code review ani přemýšlení — zlevňují všechny tři. V tom je skutečná hodnota vývojáře TypeScriptu: neznat každý utility type, ale zanechat kód, který další člověk může bezpečně měnit. Pokud je vaše základna plná any a tým se bojí refaktoringu, pošlete mi modul, na který nikdo nechce sáhnout. Ukážu, jak bych ho typoval a co by to zachytilo.

Dejte příštímu produktu někoho, kdo zůstane.

Chcete začít? Napište mi – mohu začít hned a zůstat. Dlouhodobé retainery, ne dvoutýdenní předání. Proberme váš projekt, požadavky a nejlepší cestu vpřed.

Zeptejte se na zkušenosti nebo služby