Division5 WissenInterviewleitfaden
TypeScript-Interviewfragen: zehn Fragen mit Antworten und Codebeispielen
Prüfen Sie, ob TypeScript in der vorhandenen Codebasis hilft, Datenformen und Fehlerfälle klar zu beschreiben. Die Beispiele zeigen, was der Compiler eingrenzt und was die Anwendung zur Laufzeit selbst prüfen muss.
Beginnen Sie mit dem Code, den Ihr Team wirklich schreibt
TypeScript kann in einer Browseranwendung, einem Dienst oder einer Bibliothek unterschiedliche Aufgaben haben. Nennen Sie die vorhandene Compiler-Konfiguration, Datenquellen und typische Fehler, die Sie vermeiden möchten. Eine sinnvolle Frage prüft, wie Typen Lesbarkeit und Änderungen unterstützen, statt möglichst komplexe Typausdrücke zu belohnen.
Eine kurze Probe könnte eine Antwort aus einer API als unknown entgegennehmen und in einen bekannten Datentyp überführen. So lässt sich beobachten, ob die Person zwischen statischer Beschreibung und Prüfung tatsächlicher Laufzeitdaten unterscheidet.
Zehn Fragen und woran Sie gute Antworten erkennen
- Was unterscheidet any und unknown? Gute Antwort: unknown verlangt vor der Nutzung eine Prüfung; any schaltet viele Prüfungen aus. Warnsignal: any wird zur schnellen Lösung für jede unklare Antwort.
- Wie grenzen Sie einen Union Type ein? Gute Antwort: anhand eines unterscheidenden Felds. Sie kann erklären, warum jeder Zweig einen anderen Typ erhält.
- Was bewirkt eine Typzusicherung (Type Assertion)? Gute Antwort: Sie sagt dem Compiler etwas, aber prüft den Wert zur Laufzeit nicht. Warnsignal: „as User“ wird als Validierung einer API-Antwort verstanden.
- Wann ist ein optionales Feld sinnvoll? Gute Antwort: wenn die Datenregel das Fehlen wirklich erlaubt. Sie unterscheidet optional von null und undefiniert im Projektkontext.
- Wie behandeln Sie einen Fehlerfall in einer Rückgabe? Gute Antwort: sie vergleicht eine klare Union mit Ausnahmen passend zur Schnittstelle und macht Aufruferzustände sichtbar.
- Wann hilft ein Generic? Gute Antwort: wenn eine Funktion Beziehung zwischen Eingabe- und Ausgabetyp bewahren muss. Warnsignal: ein Typparameter wird ohne Wiederverwendung ergänzt.
- Wie verhindern Sie ungültige Schlüssel bei einem Generic? Gute Antwort: mit einer begründeten Einschränkung wie K extends keyof T und einem kleinen Aufruferbeispiel.
- Wie funktionieren Typen bei JavaScript-Modulen? Gute Antwort: sie prüft Paketformat, Importgrenzen und Compiler-Einstellungen des Projekts, statt eine globale Regel zu behaupten.
- Wie würden Sie eine unsichere Altdatei schrittweise migrieren? Gute Antwort: sie setzt eine kleine Grenze, prüft Verhalten und verringert any, ohne einen Komplettumbau vorauszusetzen.
- Welche Typen brauchen Tests zur Laufzeit? Gute Antwort: externe Eingaben, Benutzerdaten und gespeicherte Werte brauchen tatsächliche Prüfungen. Typen allein validieren keine JSON-Antwort.
Drei kleine Beispiele samt Ausgabe
1. Eine Union sicher eingrenzen
Eingabe: einmal ein Erfolg mit Wert 12, einmal ein Fehler mit Meldung „Fehlt“. Das Feld ok bestimmt, welche Eigenschaft verfügbar ist.
type Result =
| { ok: true; value: number }
| { ok: false; message: string };
function describe(result: Result): string {
if (result.ok) return String(result.value);
return result.message;
}
console.log(describe({ ok: true, value: 12 }));
console.log(describe({ ok: false, message: "Fehlt" })); Ausgabe: 12, dann Fehlt. Gute Antwort: der Zugriff auf message gehört nur in den Fehlerzweig.
2. Unbekannte API-Daten zur Laufzeit prüfen
Eingabe: ein Objekt mit zwei Textfeldern und eines mit numerischer ID. Beide starten als unknown.
type User = { id: string; name: string };
function parseUser(input: unknown): User | null {
if (typeof input !== "object" || input === null) return null;
if (!("id" in input) || !("name" in input)) return null;
if (typeof input.id !== "string" || typeof input.name !== "string") return null;
return { id: input.id, name: input.name };
}
console.log(parseUser({ id: "u7", name: "Ada" }));
console.log(parseUser({ id: 7, name: "Ada" })); Ausgabe: { id: "u7", name: "Ada" }, dann null. TypeScript-Typen ersetzen diese Prüfung nicht, wenn die Daten aus dem Netz kommen.
3. Ein Generic bewahrt die konkrete Objektform
Eingabe: zwei Datensätze mit eindeutigen IDs. Der Generic verlangt eine ID und bewahrt weitere Felder des konkreten Typs.
function byId<T extends { id: string }>(items: T[]): Map<string, T> {
return new Map(items.map((item) => [item.id, item]));
}
const users = byId([
{ id: "u1", name: "Ada" },
{ id: "u2", name: "Bo" },
]);
console.log(users.get("u2")?.name); Ausgabe: Bo. Fragen Sie, warum Map hier gebraucht wird und wie sich doppelte IDs verhalten sollen. Die Funktion löst die Frage der Eindeutigkeit nicht von selbst.
Diese drei Snippets sind für TypeScript mit strengen Typprüfungen vorgesehen und benötigen keine zusätzliche Bibliothek.
Compilerwissen allein reicht nicht
Ein TypeScript-Interview zeigt keine vollständige Produktarbeit. Fragen Sie nach einer Änderung, die bestehende Aufrufer betrifft, und wie die Person sie prüft. Ihr Team legt Schnittstellen, Laufzeitvalidierung, Zugänge und Freigabe fest. Division5 gleicht den Bedarf mit vorab geprüften Profilen ab. Sie können die geprüften Profile und aufgezeichneten Interviews schon vor dem Kennenlernen ansehen. Für alle Fachkräfte gilt eine 30-tägige Testphase; Umfang und Bedingungen halten Sie vor Beginn schriftlich fest. So läuft der Auswahlprozess ab.
Quellen und weiterführende Informationen
Quellenstand: 22. Oktober 2026. Externe Inhalte können sich ändern.