Der ultimative Leitfaden zur Typkonvertierung in TypeScript: From Zero to Deep


Sind Sie jemals auf eine Situation gestoßen, in der in einem TypeScript-Projekt eine Typkonvertierung erforderlich war? Die Typkonvertierung ist eine der häufigsten Aufgaben, mit denen jeder TypeScript-Entwickler konfrontiert wird. Mit der Weiterentwicklung der Sprache und der Einführung neuer Funktionen stellt TypeScript jedoch eine Fülle von Technologien und Tools für die Typkonvertierung bereit. Dieser Blog-Beitrag führt Sie in die Tiefe der Typkonvertierungstechnologie in TypeScript ein, von Grundkenntnissen bis hin zur fortgeschrittenen Verwendung, und hilft Ihnen dabei, verschiedene Herausforderungen bei der Typkonvertierung in Ihrem Projekt problemlos zu bewältigen.


1. Warum ist eine Typkonvertierung erforderlich?


In TypeScript ist die Typkonvertierung der Prozess der Konvertierung eines Werts eines Typs in einen anderen Typ. Der Hauptzweck der Typkonvertierung besteht darin, Kompatibilitätsprobleme zwischen verschiedenen Typen zu beheben, damit der Code auf verschiedenen Typen korrekt funktionieren kann. Wenn Sie beispielsweise eine Zeichenfolge vom Backend erhalten, diese aber zur Berechnung in eine Zahl umwandeln müssen, müssen Sie eine Typkonvertierung durchführen.

Die Typkonvertierung ist besonders in den folgenden Szenarien nützlich:

  • Interaktion mit externen APIs oder Bibliotheken: Wenn Sie mit externen APIs oder Bibliotheken interagieren, müssen Sie möglicherweise Typkonvertierungen durchführen, um unterschiedliche Datenformate oder Typanforderungen zu berücksichtigen.

  • Datenverarbeitung und -validierung: Wenn Sie vom Benutzer eingegebene Daten verarbeiten und validieren müssen, kann Ihnen die Typkonvertierung dabei helfen, die Eingabe in den richtigen Typ umzuwandeln und die entsprechende Verarbeitungs- und Validierungslogik durchzuführen.

  • Datenpersistenz: Beim Speichern von Daten in einer Datenbank oder einem anderen Persistenzmedium kann die Typkonvertierung die Richtigkeit und Konsistenz der Daten sicherstellen.

Als Nächstes befassen wir uns mit der Typkonvertierungstechnologie in TypeScript.


2. Grundlegende Typkonvertierung

2.1 Explizite Typkonvertierung


In TypeScript können Sie Typzusicherungen (Type Assertion) verwenden, um eine explizite Typkonvertierung durchzuführen. Typzusicherungen verwenden asdas Schlüsselwort, um einen Wert für einen bestimmten Typ zu bestätigen.

const value: any = "123";
const numberValue: number = value as number;

Im obigen Code valuebestätigen wir den Typ as numberund weisen das Ergebnis zu numberValue. Auf diese Weise konvertieren wir den String-Typ in einen numerischen Typ.


2.2 Typkonvertierungsfunktion


Zusätzlich zu Typzusicherungen bietet TypeScript auch einige integrierte Typkonvertierungsfunktionen. Diese Funktionen können verwendet werden, um einen Typ in einen anderen umzuwandeln, zum Beispiel:

  • Number():Konvertieren Sie den Wert in numbereinen Typ.
  • String():Konvertieren Sie den Wert in stringeinen Typ.
  • Boolean():Konvertieren Sie den Wert in booleaneinen Typ.
const stringValue: string = "123";
const numberValue: number = Number(stringValue);

Im obigen Code verwenden wir Number()die Funktion, um den String-Typ in einen numerischen Typ umzuwandeln.


3. Erweiterte Typkonvertierung

3.1 Benutzerdefinierte Typkonvertierung


In TypeScript können Sie Typkonvertierungsfunktionen anpassen, um bestimmte Typkonvertierungslogiken zu verarbeiten. Durch das Schreiben benutzerdefinierter Funktionen können Sie die Details der Typkonvertierung flexibler steuern und komplexe Konvertierungsanforderungen bewältigen.

function convertStringToNumber(input: string): number {
  // 实现自定义的字符串转数字逻辑
  return parseFloat(input);
}

const stringValue: string = "3.14";
const numberValue: number = convertStringToNumber(stringValue);

Im obigen Code haben wir eine convertStringToNumberFunktion definiert, die aufgerufen wird, eine Zeichenfolge in eine Zahl umzuwandeln. Durch benutzerdefinierte Funktionen können wir eine bestimmte Logik zur Konvertierung von Zeichenfolgen in Zahlen implementieren, beispielsweise mithilfe parseFloat()der Funktion.


3.2 Typschutz

Die Verwendung von Typwächtern ermöglicht präzisere Typkonvertierungen in Ihrem Code zur Typprüfung und -verarbeitung zur Laufzeit. Hier sind einige gängige Typschutztechniken:

  • typeofTypschutz: Verwenden Sie typeofden Operator, um den Typ eines Werts zu überprüfen und die entsprechende Logik basierend auf dem Typ auszuführen. Zum Beispiel:

    function processValue(value: string | number): void {
      if (typeof value === "string") {
        // 处理字符串类型逻辑
        console.log(value.toUpperCase());
      } else if (typeof value === "number") {
        // 处理数字类型逻辑
        console.log(value * 2);
      }
    }
    ​```
    
    在上述代码中,我们使用 `typeof` 检查 `value` 的类型,并根据类型执行不同的逻辑。
    

  • instanceofTypschutz: Verwenden Sie instanceofden Operator, um die Prototypenkette eines Objekts zu überprüfen und festzustellen, ob das Objekt zu einer Instanz einer Klasse oder eines Konstruktors gehört. Zum Beispiel:

    class Person {
      name: string;
      constructor(name: string) {
        this.name = name;
      }
    }
    
    function greet(person: Person | string): void {
      if (person instanceof Person) {
        console.log(`Hello, ${person.name}`);
      } else {
        console.log(`Hello, ${person}`);
      }
    }
    ​```
    
    在上述代码中,我们使用 `instanceof` 检查 `person` 是否是 `Person` 类的实例,并根据结果执行不同的问候逻辑。
    

  • Benutzerdefinierte Typschutzfunktionen: Sie können auch benutzerdefinierte Typschutzfunktionen schreiben, um komplexere Typprüfungen durchzuführen. Zum Beispiel:

    function isEmail(value: any): value is string {
      // 自定义的邮箱类型检查逻辑
      return typeof value === "string" && value.includes("@");
    }
    
    function processInput(input: string | number): void {
      if (isEmail(input)) {
        // 处理邮箱类型逻辑
        console.log(`Sending email to: ${input}`);
      } else {
        // 处理其他类型逻辑
        console.log(`Processing input: ${input}`);
      }
    }
    ​```
    
    在上述代码中,我们定义了一个名为 `isEmail` 的自定义类型守卫函数,用于检查值是否为邮箱类型。通过自定义类型守卫函数,我们可以进行更复杂的类型检查和转换。
    

Obwohl TypeScript umfangreiche Techniken zur Typkonvertierung bereitstellt, kann die Typkonvertierung bei der Bearbeitung komplexer Szenarien eine größere Herausforderung darstellen.


Im nächsten Blogbeitrag werden wir fortgeschrittene Typkonvertierungstechniken in TypeScript untersuchen, einschließlich zugeordneter Typen, bedingter Typen und Typinferenz. Mithilfe dieser Techniken können Sie komplexe Typkonvertierungsanforderungen besser bewältigen und die Lesbarkeit und Wartbarkeit Ihres Codes verbessern.


Guess you like

Origin blog.csdn.net/lizhong2008/article/details/135091776