Informatik Programmierung – TypeScript und Typsysteme
Karteikarten zum Thema „Informatik“ · 16 Karten · von atrio. Beispiele: Was ist der Unterschied zwischen 'type' und 'interface' in TypeScript? · Welche Basis…
Karten
16 KartenWas ist der Unterschied zwischen 'type' und 'interface' in TypeScript?
Rückseite
Interfaces sind erweiterbar (Declaration Merging) und eignen sich für Objektformen; Types sind vielseitiger (Unions, Tuples, Primitives) und können nicht gemerged werden.
Welche Basis-Typen bietet TypeScript neben JavaScript-Primitiven?
Rückseite
TypeScript fügt any, unknown, never, void, null, undefined, object, symbol, bigint sowie Array<T>, Tuple und Enum hinzu.
Was bewirkt der 'strict'-Modus in der tsconfig.json?
Rückseite
Aktiviert alle strengen Typ-Prüfungen: noImplicitAny, strictNullChecks, strictFunctionTypes, strictBindCallApply, strictPropertyInitialization, alwaysStrict.
Wie unterscheiden sich 'unknown' und 'any'?
Rückseite
any schaltet Typprüfung komplett aus; unknown erzwingt Typ-Narrowing vor Nutzung – sicherer für externe Daten ohne Typdefinition.
Was sind Union Types und wie nutzt man sie?
Rückseite
Union Types (A | B) erlauben einen Wert aus mehreren Typen; Zugriff nur auf gemeinsame Eigenschaften, Narrowing via typeof, instanceof oder User-Defined Type Guards.
Was sind Intersection Types und wann werden sie verwendet?
Rückseite
Intersection Types (A & B) vereinen alle Eigenschaften beider Typen; nützlich für Mixins, Extension-Patterns und das Zusammenführen von Interface-Verträgen.
Wie funktionieren Generics in TypeScript?
Rückseite
Generics (<T>) ermöglichen typsichere wiederverwendbare Komponenten; Typparameter werden bei Aufruf konkretisiert oder per Constraint (extends) eingeschränkt.
Was ist ein Type Guard und welche Arten gibt es?
Rückseite
Type Guards verengen Typen zur Laufzeit: typeof (Primitives), instanceof (Klassen), in-Operator (Properties), User-Defined Type Guards (x is T) und Assertion Functions (asserts x is T).
Was bewirkt 'keyof' und 'typeof' als Type-Operatoren?
Rückseite
keyof T liefert Union aller Property-Keys von T; typeof x extrahiert den Typ einer Wert-Expression – Basis für Lookup Types und Mapped Types.
Was sind Mapped Types und wie sehen sie aus?
Rückseite
Mapped Types transformieren Properties: { [K in keyof T]: Transform<T[K]> }; Beispiele: Partial<T>, Required<T>, Readonly<T>, Pick<T,K>, Record<K,T>.
Was sind Conditional Types und wofür nutzt man sie?
Rückseite
Conditional Types (T extends U ? X : Y) wählen Typen basierend auf Typbeziehungen; Grundlage für Utility Types wie Exclude, Extract, NonNullable, ReturnType.
Wie funktioniert 'infer' in Conditional Types?
Rückseite
infer deklariert einen Typparameter innerhalb der Bedingung, der aus der Übereinstimmung extrahiert wird – z. B. für ReturnType<T> oder Parameters<T>.
Was sind Template Literal Types?
Rückseite
Template Literal Types (`` `${Prefix}${Suffix}` ``) erzeugen String-Literal-Typen aus Unions; ermöglichen typsichere Event-Namen, CSS-Klassen oder API-Pfade.
Was ist Declaration Merging bei Interfaces?
Rückseite
Mehrere Interface-Deklarationen mit gleichem Namen werden zu einem zusammengeführt; Properties werden vereint, Funktionssignaturen zu Überladungen kombiniert.
Wie typisiert man Funktionen mit Überladungen in TypeScript?
Rückseite
Mehrere Signaturen (Überladungen) gefolgt von einer Implementierungssignatur; Compiler wählt passende Signatur basierend auf Argumenten – Typsicherheit für verschiedene Aufrufvarianten.
Was sind Branded Types (Nominal Typing) in TypeScript?
Rückseite
Branded Types simulieren nominales Typing: type Brand<T, B> = T & { __brand: B }; verhindern versehentliches Verwechseln strukturell gleicher Typen (z. B. UserId vs. PostId).