Eine starke TypeScript-Antwort erklärt, welche ungültigen Zustände entfernt werden, welche Laufzeitrisiken bestehen bleiben und wie ein anderer Ingenieur die resultierende API verstehen wird.
Kernmodellfragen
- Wie unterscheiden sich `unknown`, `any` und `never` in einer API?
- Wann ist eine diskriminierte Vereinigung besser als optionale Felder?
- Wie funktioniert Control-Flow Verengung?
- Was macht strukturelle Typisierung einfacher oder riskanter?
- Wie verbessern generische Einschränkungen eine API?
Praktische API-Fragen
- Entwerfen Sie die Zustände einer asynchronen Anforderung.
- Geben Sie eine Ereigniskarte ein, ohne ereignisspezifische Nutzlasten zu verlieren.
- Modellieren Sie ein Formular mit bedingten Feldern.
- Erstellen Sie einen typsicheren Adapter um nicht vertrauenswürdiges JSON.
- Entwickeln Sie eine gemeinsame Funktion, ohne Anrufer zu brechen.
Systemfragen
- Wo sollte die Laufzeitvalidierung stattfinden?
- Wie sollten generierte API-Typen konsumiert werden?
- Was ist Ihre Strategie für Strenge in einer Migration?
- Wann können Typenaussagen ein Designproblem verbergen?
- Wie beeinflussen Projektreferenzen oder Paketgrenzen eine große Codebasis?
Antwortrahmen
- Geben Sie das Produkt invariant an.
- Zeigen Sie das einfachste lesbare Typmodell.
- Nennen Sie die Laufzeitgrenze.
- Diskutieren Sie Inferenz und Call-Site-Ergonomie.
- Erklären Sie die Migrations- und Testfolgen.
Primärquellen
Redaktionelle Überprüfung
Produktaussagen wurden anhand der aktuellen Anwendung geprüft. Haben Sie einen Fehler gefunden? Senden Sie eine Korrektur.