TypeScript: Vollständiger Leitfaden zur Vorbereitung auf das Vorstellungsgespräch

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Warum ist TypeScript ein Must-have für moderne Entwickler?

\n

Wenn Sie diesen Artikel geöffnet haben, wissen Sie bereits, dass TypeScript nicht nur ein „Add-on zu JavaScript“ ist, sondern ein vollwertiges Werkzeug, das Nerven und Produktionsserver schont. In Vorstellungsgesprächen im Jahr 2025 wird TypeScript-Kenntnisse in fast 80% der Stellenausschreibungen auf Middle+-Niveau geprüft. Und es geht nicht darum, const a: number = 5 zu schreiben. Interviewer möchten ein Verständnis des Typsystems, von Generics und die Fähigkeit, sichere Architekturen zu entwerfen, sehen.

\n

In diesem Artikel analysieren wir die häufigsten Fragen in TypeScript-Vorstellungsgesprächen, die tatsächlich in Top-Unternehmen gestellt werden. Sie erhalten nicht nur Theorie, sondern auch TypeScript-Codebeispiele, die Sie sofort in Ihren Pet-Projekten verwenden können. Los geht's!

\n\n

1. Grundlagen: Typen, Interfaces und der Unterschied zwischen ihnen

\n

Der erste Fragenblock ist grundlegend. Der Interviewer möchte sicherstellen, dass Sie type und interface nicht verwechseln.

\n

Wann verwendet man type und wann interface?

\n

Eine klassische Frage. Merken Sie sich eine einfache Regel:

\n
    \n
  • Interface – für Objekte, die erweitert werden können (Declaration Merging). Verwenden Sie es für APIs, DTOs, Komponenten-Props.
  • \n
  • Type – für Vereinigungen (union), Schnittmengen, primitive Typen und Tupel.
  • \n
\n

Ein Beispiel aus einem echten Vorstellungsgespräch:

\n
// Interface – erweiterbar\ninterface User {\n    id: number;\n    name: string;\n}\n\ninterface AdminUser extends User {\n    role: 'admin';\n}\n\n// Type – Vereinigung\ntype Status = 'active' | 'inactive' | 'banned';\ntype ApiResponse<T> = {\n    data: T;\n    error?: string;\n};
\n

Wichtig: Sagen Sie niemals „Interface ist besser, weil es schneller ist“. Der Leistungsunterschied ist mikroskopisch. Entscheidend ist die Semantik.

\n\n

2. Generics: Wie man im Vorstellungsgespräch nicht blamiert

\n

Das Thema Generics in TypeScript ist der Lieblingsschwachpunkt von Junioren. Interviewer lieben es, Sie zu bitten, eine Funktion zu schreiben, die ein Array nimmt und das erste Element mit dem korrekten Typ zurückgibt.

\n

Eine Generic-Funktion schreiben

\n
function getFirst<T>(arr: T[]): T | undefined {\n    return arr[0];\n}\n\nconst num = getFirst([1, 2, 3]); // number\nconst str = getFirst(['a', 'b']); // string
\n

Jetzt machen wir es komplexer – wir schränken das Generic mit extends ein:

\n
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {\n    return obj[key];\n}\n\nconst user = { name: 'Alice', age: 30 };\ngetProperty(user, 'name'); // OK: string\ngetProperty(user, 'email'); // Error: 'email' ist nicht in keyof enthalten
\n

Dieses Muster kommt in jedem zweiten Projekt mit React + TypeScript vor. Üben Sie unbedingt das Schreiben von Generics für TypeScript in Ihren eigenen Projekten.

\n\n

3. Utility Types: Ihr geheimes Arsenal

\n

Die Kenntnis der eingebauten Utility-Typen ist ein Zeichen von Professionalität. Der Interviewer könnte fragen: „Wie macht man alle Felder optional?“ oder „Wie wählt man nur einen Teil eines Interfaces aus?“.

\n

Die Top-5 Utility Types, die Sie kennen sollten

\n
    \n
  • Partial<T> – alle Felder werden optional;
  • \n
  • Required<T> – alle Felder sind erforderlich;
  • \n
  • Pick<T, K> – wählt nur die angegebenen Schlüssel aus;
  • \n
  • Omit<T, K> – schließt die angegebenen Schlüssel aus;
  • \n
  • Record<K, V> – erstellt einen Objekttyp mit Schlüsseln K und Werten V.
  • \n
\n

Ein Beispiel, das gerne im Vorstellungsgespräch gegeben wird:

\n
interface Todo {\n    title: string;\n    description: string;\n    completed: boolean;\n    createdAt: Date;\n}\n\n// Nur einen Teil von Todo aktualisieren\nfunction updateTodo(todo: Todo, fieldsToUpdate: Partial<Todo>) {\n    return { ...todo, ...fieldsToUpdate };\n}\n\n// Ein Wörterbuch erstellen\nconst                

Blogs

Buchempfehlungen