Interviewfragen zu TypeScript (Middle) mit Antworten

75 Fragen fürs Vorstellungsgespräch zu TypeScript (Middle) mit richtigen Antworten, Erklärungen und Links zur Dokumentation.

Diesen Test machen
  1. 1.Was ist ein benutzerdefinierter Type Guard?
  2. 2.Wie garantiert man, dass ein switch jedes Mitglied einer Union behandelt hat?
  3. 3.Was bedeutet <T extends { id: string }> in einem Generic?
  4. 4.Wie typisiert man getProp(obj, key), damit das Ergebnis vom Schlüssel abhängt?
  5. 5.Was ist ein Mapped Type?
  6. 6.Was macht der bedingte Typ T extends string ? 'text' : 'other'?
  7. 7.Was macht infer in type ElementType<T> = T extends (infer U)[] ? U : never?
  8. 8.Was liefert Awaited<Promise<Promise<number>>>?
  9. 9.Wie unterscheidet sich Exclude<T, U> von Omit<T, K>?
  10. 10.Wie funktionieren Funktionsüberladungen in TypeScript?
  11. 11.Was ist Declaration Merging?
  12. 12.Wozu dient eine abstrakte Klasse?
  13. 13.Wie unterscheidet sich protected von private in TypeScript-Klassen?
  14. 14.Was macht der Operator satisfies?
  15. 15.Was sind Template Literal Types?
  16. 16.Warum nutzt man oft ein Objekt mit as const statt eines enum?
  17. 17.Wie unterscheidet sich const enum von einem normalen enum?
  18. 18.Wie unterscheiden sich Namespaces (namespace) von ES-Modulen?
  19. 19.Was ist eine Assertion-Funktion?
  20. 20.Wie bekommt man die Props eines nativen Buttons, um sie in der eigenen Komponente zu erweitern?
  21. 21.Wie typisiert man die Hooks von Redux Toolkit in einer TypeScript-App?
  22. 22.Wie typisiert man eine generische Listenkomponente?
  23. 23.Was ergibt Extract<'a' | 'b' | 1 | 2, string>?
  24. 24.Was liefert NonNullable<string | null | undefined>?
  25. 25.Wie unterscheiden sich object, {} und Record<string, unknown> als Typen?
  26. 26.Wie behandelt TypeScript den Operator in beim Eingrenzen?
  27. 27.Was machen -readonly und -? in einem Mapped Type?
  28. 28.Wie benennt man Schlüssel in einem Mapped Type um?
  29. 29.Warum liefert Object.keys(user) string[] statt (keyof User)[]?
  30. 30.Was bringt das Flag noUncheckedIndexedAccess?
  31. 31.Wie unterscheidet sich unknown[] von any[] in einem Funktionsparameter?
  32. 32.Was sind Decorators in TypeScript 5?
  33. 33.Was macht import type { User } from './types'?
  34. 34.Warum ist interface zum Erweitern großer Objekttypen besser als eine Intersection?
  35. 35.Was liefert Parameters<(a: string, b?: number) => void>?
  36. 36.Wie gibt man den Typ von this für eine Handler-Funktion an?
  37. 37.Wie typisiert man am besten eine API-Antwort, deren Struktur vom Status abhängt?
  38. 38.Was macht das Utility ReadonlyArray<T> (oder readonly T[])?
  39. 39.Was ist unique symbol?
  40. 40.Wie erweitert man aus einem Modul heraus den Typ des globalen Objekts Window?
  41. 41.Wie typisiert man das Ergebnis von JSON.parse sicher?
  42. 42.Wie unterscheidet sich type A = B von interface A extends B {} in den Tooltips der IDE?
  43. 43.Was bringt paths in tsconfig.json?
  44. 44.Wie unterscheidet sich moduleResolution: 'bundler' von 'node16'/'nodenext'?
  45. 45.Was macht das Flag isolatedModules?
  46. 46.Was macht keyof typeof obj?
  47. 47.Wann erweitert TS einen Literaltyp zu einem allgemeinen?
  48. 48.Wie macht man einen generischen Parameter mit Standardwert optional?
  49. 49.Wie typisiert man eine Fabrikfunktion, die denselben Typ liefert, den sie bekam?
  50. 50.Was ist kontextuelle Typisierung?
  51. 51.Warum verliert Omit<Circle | Square, 'id'> die Discriminated Union?
  52. 52.Was bringt as const satisfies Record<string, Route> für ein Konfigurationsobjekt?
  53. 53.Wann zieht man einen Union-Parameter Überladungen vor?
  54. 54.Was sind Parameter Properties, und warum sind sie keine „entfernbare“ Syntax?
  55. 55.Wovor schützen das Schlüsselwort override und noImplicitOverride?
  56. 56.Warum verhindert Readonly<Settings> diese Änderung womöglich nicht?
  57. 57.Wie leitet man einen TypeScript-Typ aus einem Zod-Schema ab?
  58. 58.Was bringt typbewusstes Linting mit typescript-eslint zusätzlich zu tsc?
  59. 59.Wie teilt man eine strenge Basiskonfiguration zwischen vielen Paketen?
  60. 60.Wie unterscheiden sich target und lib in tsconfig.json?
  61. 61.Was behebt esModuleInterop?
  62. 62.Welche Option erlaubt import config from './config.json' mit typisiertem Inhalt?
  63. 63.Wie bekommt man den Instanztyp und die Konstruktorargumente einer Klasse?
  64. 64.Wie grenzt man die Ergebnisse von Promise.allSettled ein?
  65. 65.Was erlauben die intrinsischen Typen Uppercase, Capitalize usw.?
  66. 66.Was finden noImplicitReturns und noFallthroughCasesInSwitch?
  67. 67.Wie typisiert man eine Generatorfunktion?
  68. 68.Wie typisiert man einen generischen Hook zum Laden von Daten?
  69. 69.Wann ist Map<K, V> besser als ein Objekt mit Index-Signatur?
  70. 70.Was machen types/typesVersions und die Bedingung "types" in exports der package.json?
  71. 71.Was macht export type * from './types' (TS 5.0+)?
  72. 72.Wie schreibt man einen Typ für einen beliebigen JSON-Wert?
  73. 73.Wie setzt man einen typsicheren Event Emitter um?
  74. 74.Funktioniert Eingrenzung, wenn eine Discriminated Union zuerst destrukturiert wird?
  75. 75.Was ermöglicht Eingrenzung mit switch (true) (TS 5.3)?