TypeScript: TypeGuards

In TypeScript können wir Typen benutzen, uns vom Compiler helfen lassen sowie diesen auch vorübergehend abschalten.

Wie können wir aber anhand eines Diskriminators den Typ einer Variable reduzieren, ohne ständig if und else dafür zu nutzen?

Seht euch folgendes Beispiel an:

interface Car {
  model: string;
  brand: string;
}

const unionType: Car | undefined = getSomeCarMaybe();

if (hasValue(unionType)) {
  // we definitely know, that the value is defined
  // It is no longer a union type
}

const hasValue = <T>(possibleValue: T | undefined): possibleValue is T => {
  return possibleValue !== null && possibleValue !== undefined;
}

Wir haben hier eine TypeGuard Methode welche prüft, ob ein angegebener Wert definiert ist. Ebenfalls ist ein Wert als definiert anzusehen, wenn dieser weder „null“ oder „undefined“ ist.

Man kann TypeGuards für mehr als nur eine einfach „Ist-Definiert“ Prüfung benutzen.

10cookie-checkTypeScript: TypeGuards

1 Kommentar zu „TypeScript: TypeGuards“

  1. Pingback: Type | Treat (Type or Treat) – Tag 2/5 – r3d-soft Blog

Kommentar verfassen