Heim > Web-Frontend > js-Tutorial > Hauptteil

Vereinfachen von Union-Typen und Arrays in TypeScript

Patricia Arquette
Freigeben: 2024-10-12 14:32:02
Original
780 Leute haben es durchsucht

Simplifying Union Types and Arrays in TypeScript

Wenn Sie mit TypeScript arbeiten, müssen Sie möglicherweise einen Union-Typ und ein Array definieren, das alle möglichen Werte dieses Typs enthält. Ein gängiger Ansatz besteht darin, etwa Folgendes zu schreiben:

type Taste = 'しょうゆ' | 'みそ' | 'とんこつ';
const tastes = ['しょうゆ', 'みそ', 'とんこつ'];
Nach dem Login kopieren

Auf den ersten Blick scheint das in Ordnung zu sein. Allerdings gibt es hier ein verstecktes Problem: Jedes Mal, wenn Sie eine Option ändern oder hinzufügen möchten, müssen Sie sowohl den Taste-Union-Typ als auch das Geschmacks-Array aktualisieren. Diese Doppelarbeit kann zu Fehlern führen und die Pflege des Codes mühsamer machen.

Glücklicherweise gibt es eine Möglichkeit, dies zu vereinfachen, indem Redundanz reduziert wird. Durch die Verwendung der as const-Assertion und des typeof in TypeScript können Sie die Definition sowohl des Union-Typs als auch des Arrays an einem Ort konsolidieren. So können Sie den obigen Code umgestalten:

const tastes = ['しょうゆ', 'みそ', 'とんこつ'] as const;
type Taste = (typeof tastes)[number];
Nach dem Login kopieren

Dieser Ansatz hat mehrere Vorteile:

  1. Eine einzige Quelle der Wahrheit:

    Sie definieren die Werteliste nur einmal im Geschmacks-Array. Der Geschmackstyp wird automatisch aus diesem Array abgeleitet. Wenn Sie also jemals die Liste aktualisieren müssen, müssen Sie dies nur an einer Stelle tun.

  2. Typsicherheit:

    Durch die Verwendung von as const behandelt TypeScript das Tastes-Array als Tupel mit Literaltypen und nicht nur als String-Array. Dadurch wird sichergestellt, dass der Geschmackstyp korrekt bleibt und mit den Geschmackswerten übereinstimmt.

  3. Bessere Wartung:

    Da der Taste-Typ aus dem Array generiert wird, besteht kein Risiko einer Nichtübereinstimmung zwischen dem Typ und den tatsächlichen Werten. Dies reduziert das Fehlerpotenzial und erleichtert die Wartung des Codes.

Beispielanwendungsfall

Wenn Sie jetzt den Geschmackstyp in Ihrem Code verwenden, stimmt er garantiert mit den Werten im Geschmacks-Array überein:

function describeTaste(taste: Taste): string {
  switch (taste) {
    case 'しょうゆ':
      return 'Savory soy sauce flavor.';
    case 'みそ':
      return 'Rich miso flavor.';
    case 'とんこつ':
      return 'Creamy pork broth flavor.';
    default:
      return 'Unknown taste';
  }
}

const allTastes: Taste[] = tastes; // Safe, because they match the type!
Nach dem Login kopieren

Dieses Muster verbessert nicht nur die Lesbarkeit Ihres Codes, sondern stellt auch sicher, dass er weniger fehleranfällig ist, insbesondere wenn es um mehrere Werte geht, die synchron gehalten werden müssen.

Durch die Übernahme dieser Strategie können Sie Ihren TypeScript-Code wartbarer und skalierbarer machen. Dies ist besonders nützlich, wenn Sie mit großen Wertemengen arbeiten oder wenn Ihre Codebasis mit der Zeit wächst.

Das obige ist der detaillierte Inhalt vonVereinfachen von Union-Typen und Arrays in TypeScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage