zurück zur Tech-Wiki
Tech-Wiki/Sprachen
T
TypeScript
Typsicheres Superset von JavaScript.
v5·Microsoft·Apache-2.0
Übersicht
Was ist es?
TypeScript ist Microsofts typsicheres Superset von JavaScript — statische Typen werden zur Compile-Zeit geprüft und beim Build entfernt. Industriestandard für seriöse JS-Codebases, in dieser Codebase strict-mode default.
Quickstart
pnpm add -D typescript @types/node
pnpm tsc --init --strict
pnpm tsc --noEmit # Typecheck ohne Output
tsconfig.json mit "strict": true, "noUncheckedIndexedAccess": true und "moduleResolution": "bundler" für Next/Vite.
Typische Patterns
- Discriminated Unions statt Klassen-Hierarchien:
type Result<T> = { ok: true; value: T } | { ok: false; error: string } satisfiesstatt Type-Annotation, wenn Inference erhalten bleiben soll:const config = { port: 3000 } satisfies Config- Zod / Valibot für Runtime-Validierung +
z.infer<>für Typen aus Schema. - Template Literal Types für API-Routen, Event-Namen, etc.:
`on${Capitalize<K>}`. as constfür readonly tuples und literal-narrowing.
Gotchas / Was oft schiefgeht
anyist ansteckend — einmal drin, frisst es die Typsicherheit ganzer Call-Chains.unknown+ Type-Guard nutzen.Object.keys(obj)gibtstring[]zurück, nicht(keyof T)[]— bewusste Type-Assertion nötig.noUncheckedIndexedAccessmachtarr[0]zuT | undefined— viele Codebases vergessen das initial.- Decorators und enums sind Stolperfallen; lieber
as const-Objects. - Type-Erasure: zur Runtime sind alle Typen weg —
instanceoffunktioniert nur bei Klassen.
Wann nicht?
Wegwerf-Prototypen oder 50-Zeilen-Skripte. Aber selbst dort lohnt JSDoc-Types mit // @ts-check.