26 Type Manipulation

In TypeScript können Sie verschiedene Techniken zur Typmanipulation verwenden, um Ihre Typdefinitionen flexibler und wiederverwendbarer zu gestalten. Hier sind einige der wichtigsten Techniken:

26.1 Union Types

Sie können den Typ einer Variablen so definieren, dass sie Werte mehrerer unterschiedlicher Typen annehmen kann:

let value: number | string;
value = 1;  // OK
value = 'hello';  // OK

26.2 Type Aliases

Sie können einen neuen Namen für einen bestehenden Typ erstellen:

type StringOrNumber = string | number;

let value: StringOrNumber;
value = 1;  // OK
value = 'hello';  // OK

26.3 Intersection Types

Sie können mehrere Typen zu einem einzigen Typ zusammenführen:

type First = { a: number };
type Second = { b: string };

type Combined = First & Second;

let value: Combined;
value = { a: 1, b: 'hello' };  // OK

26.4 Type Guards

Sie können die Typen von Variablen innerhalb von Bedingungen überprüfen:

function doSomething(value: string | number) {
  if (typeof value === 'string') {
    // Hier wird 'value' als 'string' behandelt
    console.log(value.toUpperCase());
  } else {
    // Hier wird 'value' als 'number' behandelt
    console.log(value * 2);
  }
}

26.5 Type Casting

Sie können den Typ einer Variable explizit zu einem anderen Typ umwandeln:

let value: unknown;
let str = value as string;  // Type Casting zu 'string'

26.6 Mapped Types

Sie können einen neuen Typ basierend auf einem bestehenden Typ erstellen, indem Sie über seine Eigenschaften iterieren:

type Original = { a: number; b: string; };
// Ein Typ mit denselben Eigenschaften wie 'Original', 
// aber alle Eigenschaften sind 'readonly'
type ReadonlyOriginal = Readonly<Original>;  

Diese Techniken können Ihnen helfen, Ihre Typdefinitionen auf eine Weise zu gestalten, die sowohl robust als auch flexibel ist, und können dazu beitragen, die Qualität und Sicherheit Ihres Codes zu verbessern.