„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum sind Type Guards notwendig? Erkundung verschiedener Typen und ihrer Anwendungsfälle

Warum sind Type Guards notwendig? Erkundung verschiedener Typen und ihrer Anwendungsfälle

Veröffentlicht am 08.11.2024
Durchsuche:375

Why Are Type Guards Necessary? Exploring Different Types and Their Use Cases

Warum sind Type Guards notwendig? Erkundung verschiedener Typen und ihrer Anwendungsfälle

In TypeScript spielen Type Guards eine wesentliche Rolle dabei, die Codebasis zuverlässiger und entwicklerfreundlicher zu machen. Sie tragen zur Gewährleistung der Typsicherheit bei, indem sie es Entwicklern ermöglichen, Typen einzugrenzen, was bei Laufzeitfehlern hilft und den Code leichter verständlich und leicht zu warten macht.

Was sind Type Guards?

Typwächter sind Ausdrücke oder Funktionen, die Laufzeitprüfungen für Typen durchführen und sicherstellen, dass Werte bestimmte Kriterien erfüllen, bevor sie weiterverarbeitet werden. Sie tragen zur Aufrechterhaltung der Typsicherheit bei und ermöglichen Entwicklern den angemessenen Umgang mit Werten.

Warum sind Type Guards notwendig?

In JavaScript stößt man häufig auf Werte, die mehrere Typen haben können, etwa eine Funktion, die entweder eine Zeichenfolge oder eine Zahl zurückgibt. Ohne Typwächter wäre TypeScript nicht in der Lage, den genauen Typ zu bestimmen, was zu potenziellen Laufzeitfehlern und falschem Verhalten führen würde. Mithilfe von Typwächtern können Sie den Typ eines Werts zur Laufzeit überprüfen, sodass TypeScript die Typen eingrenzen und eine genauere Typprüfung ermöglichen kann.

Gängige Arten von Type Guards und ihre Anwendungsfälle

1. Art des Typs Guards

Anwendungsfall: Grundlegende Typprüfung für primitive Typen.
Beispiel:

function printValue(value: string | number) {
  if (typeof value === "string") {
    console.log(`String value: ${value.toUpperCase()}`);
  } else {
    console.log(`Number value: ${value.toFixed(2)}`);
  }
}

Erläuterung: typeof ist bei primitiven Typen (Zeichenfolge, Zahl, boolescher Wert) wirksam. Dadurch kann die Funktion Zeichenfolgen- und Zahlentypen unterschiedlich behandeln.

2. Benutzerdefinierte Type Guards (ist Schlüsselwort)

Anwendungsfall: Für komplexe Logik, Überprüfung benutzerdefinierter Formen oder Schnittstellen.

Beispiel:

 interface Square {
    side: number;
  }
  interface Circle {
    radius: number;
  }

  function isSquare(shape: Square | Circle): shape is Square {
    return (shape as Square).side !== undefined;
  }

  function calculateArea(shape: Square | Circle) {
    if (isSquare(shape)) {
      return shape.side * shape.side;
    } else {
      return Math.PI * shape.radius * shape.radius;
    }
  }

Erläuterung: Mit benutzerdefinierten Typwächtern können Sie Funktionen definieren, die bestimmte Attribute überprüfen, um den Typ zu bestimmen. Hier prüft isSquare das Vorhandensein der Nebeneigenschaft.

3. in Operator Type Guards

Anwendungsfall: Überprüfen, ob ein Objekt eine bestimmte Eigenschaft hat.
Beispiel:

 interface Car {
    drive(): void;
  }
  interface Boat {
    sail(): void;
  }

  function move(vehicle: Car | Boat) {
    if ("drive" in vehicle) {
      vehicle.drive();
    } else {
      vehicle.sail();
    }
  }

Erläuterung: Der in-Operator prüft, ob eine Eigenschaft vorhanden ist, hilft TypeScript dabei, den Typ zu verstehen und ermöglicht den Zugriff auf die relevanten Methoden.

Abschluss

Type Guards sind eine leistungsstarke Funktion in TypeScript, die eine präzise Typprüfung ermöglicht, Fehler reduziert und die Lesbarkeit und Wartbarkeit des Codes verbessert. Durch die Nutzung von „typeof“, „instanceof“, benutzerdefinierten Typschutzvorrichtungen und dem „in“-Operator können Sie komplexe Typen in TypeScript-Projekten sicher und effektiv verarbeiten.

Freigabeerklärung Dieser Artikel ist reproduziert unter: https://dev.to/naymhdev/why-are-type-guards-nigary-exploring-different-types-and-their-use-cases-2f8e?1 Wenn es eine Verletzung gibt, kontaktieren Sie bitte [email protected], um es zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3