Die häufigsten Fehler von TypeScript-Anfängern: So schreiben Sie sauberen und sicheren Code
TypeScript ist ein leistungsstarkes Werkzeug, das Entwicklern hilft, vorhersehbareren und sichereren JavaScript-Code zu schreiben. Beim Wechsel von JS machen viele Anfänger jedoch immer wieder dieselben Fehler, die die Vorteile der strengen Typisierung zunichtemachen. In diesem Artikel analysieren wir die 4 häufigsten Fehler von TypeScript-Anfängern und zeigen anhand anschaulicher Beispiele, wie man sie behebt.
1. Übermäßige Verwendung des Typs any
Der häufigste und gefährlichste Fehler ist die Verwendung von any überall dort, wo TypeScript nach einem Typ fragt. Dies verwandelt Ihren Code wieder in gewöhnliches JavaScript und beraubt Sie der Editor-Hinweise und der Typprüfung während der Kompilierung.
❌ Schlechtes Beispiel:
function processData(data: any) { return data.name.toUpperCase();}
const result = processData(42); // Fehler zur Laufzeit! Zahl hat keine Eigenschaft name✅ Gutes Beispiel:
interface UserData { name: string; age: number;}
function processData(data: UserData): string { return data.name.toUpperCase();}
const user: UserData = { name: "Ivan", age: 30 };const result = processData(user); // Funktioniert korrektTipp: Versuchen Sie, unknown anstelle von any zu verwenden, wenn der Typ wirklich unbekannt ist. unknown zwingt Sie, eine Typprüfung durchzuführen, bevor Sie den Wert verwenden.
2. Ignorieren des Strict Mode
Viele Anfänger deaktivieren den Strict Mode (strict: true) in der tsconfig.json, um "sich nicht von Fehlern ablenken zu lassen". Dies beraubt Sie des Hauptvorteils von TypeScript – der frühzeitigen Erkennung potenzieller Bugs.
Was der Strict Mode beinhaltet:
strictNullChecks– verbietet die Zuweisung vonnullundundefinedan Variablen, sofern nicht explizit angegeben.noImplicitAny– verbietet die implizite Verwendung vonany.strictFunctionTypes– strengere Typprüfung von Funktionen.
❌ Ohne Strict Mode:
function getLength(value: string | null) { return value.length; // Fehler zur Laufzeit, wenn value = null}✅ Mit Strict Mode:
function getLength(value: string | null): number { if (value === null) { return 0; // Behandle null explizit } return value.length; // TypeScript weiß, dass value ein string ist}Tipp: Aktivieren Sie immer "strict": true in der tsconfig.json. Das spart in Zukunft stundenlanges Debugging.
3. Falscher Umgang mit Asynchronität
Fehler mit Promises und async/await sind ein Klassiker. Anfänger vergessen oft, Fehler zu behandeln oder typisieren asynchrone Funktionen falsch.
❌ Schlechtes Beispiel:
async function fetchData(url: string) { const response = await fetch(url); const data = response.json(); // await vergessen! return data;}✅ Gutes Beispiel:
interface ApiResponse { id: number; title: string;}
async function fetchData(url: string): Promise<ApiResponse> { try { const response = await fetch(url); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data: ApiResponse = await response.json(); return data; } catch (error) { console.error("Fehler beim Laden der Daten:", error); throw error; // Fehler weiterwerfen }}Tipp: Verwenden Sie immer try...catch zur Fehlerbehandlung in asynchronen Funktionen und vergessen Sie nicht await beim Aufruf von Methoden, die ein Promise zurückgeben.