Warum ist TypeScript ein Must-have für moderne Entwickler?
\nWenn 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.
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\n1. Grundlagen: Typen, Interfaces und der Unterschied zwischen ihnen
\nDer erste Fragenblock ist grundlegend. Der Interviewer möchte sicherstellen, dass Sie type und interface nicht verwechseln.
Wann verwendet man type und wann interface?
\nEine 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
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};\nWichtig: Sagen Sie niemals „Interface ist besser, weil es schneller ist“. Der Leistungsunterschied ist mikroskopisch. Entscheidend ist die Semantik.
\n\n2. Generics: Wie man im Vorstellungsgespräch nicht blamiert
\nDas 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.
\nEine Generic-Funktion schreiben
\nfunction 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\nJetzt machen wir es komplexer – wir schränken das Generic mit extends ein:
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\nDieses 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\n3. Utility Types: Ihr geheimes Arsenal
\nDie 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?“.
\nDie 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
Ein Beispiel, das gerne im Vorstellungsgespräch gegeben wird:
\ninterface 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