TypeScript in Depth
Az útvonal
- 95 percA következtetés a lényeg
Hagyd a fordítót dolgozni, és hogy mire is jó valójában egy annotáció.
Itt szállsz fel - 95 percSzűkítés és a discriminated union
Állapotok modellezése úgy, hogy a lehetetlenek le se fordulnak.
- 95 percGenerikusok, amiket jó olvasni
Típusparaméterek és megszorítások, és hogy mikor túlzás egy generikus.
- 95 percA típusszintű eszköztár
Feltételes és mapped típusok, keyof és template literálok — szándékosan visszafogottan.
- 95 percTípusok a határon
Amit egy API-ból kapsz, azt validáld — és hol jobb az `unknown` az `any`-nél.
- 95 percEgy valódi kódbázis beállítása
A strict flagek, a modulfeloldás, és együttélés a külső típusokkal.
Bepillantás a tanításba
Tedd le nem fordulóvá a lehetetlen állapotot.
// Flags let you express nonsense — loading AND an error AND data:
type Bad = { loading: boolean; error?: string; data?: Course };
// A discriminated union cannot:
type State =
| { status: "loading" }
| { status: "error"; message: string }
| { status: "ready"; data: Course };
function render(s: State) {
if (s.status === "error") return s.message; // narrowed
if (s.status === "ready") return s.data.title; // narrowed
return "Loading…";
}
A fordító innentől visszautasítja azokat az állapotokat, amiket különben neked kellene fejben tartanod, hogy ne állítsd elő. Ez többet ér bármelyik ügyes generikusnál, amit valaha írni fogsz.
Ki vezet
Péter úgy magyaráz, ahogy egy jó kolléga a tábla előtt — nincs öncélú szakzsargon, és nincs semmi elrejtve az „ahogy látható” mögé.
Helykitöltő profil