Heim Web-Frontend js-Tutorial Warum man Typen anstelle von Schnittstellen wählen sollte

Warum man Typen anstelle von Schnittstellen wählen sollte

Aug 05, 2024 pm 07:03 PM

Why to Choose Types Instead of Interfaces

In TypeScript werden sowohl Typen als auch Schnittstellen verwendet, um die Typen von Objekten zu definieren. Sie haben jedoch unterschiedliche Verwendungszwecke und Funktionen. Beides kann Entwicklern dabei helfen, die Typen von Variablen und Objekten beim Schreiben von Code einzuschränken, wodurch Fehler reduziert und die Lesbarkeit des Codes verbessert werden.

Warum also Typen? Lassen Sie uns das besprechen.

Typen

In TypeScript können Sie mit einem Typ die Form von Daten definieren. Es ist flexibel und kann zum Erstellen von Vereinigungen, Schnittpunkten und mehr verwendet werden.

type User = {
  name: string;
  age: number;
};

type Admin = User & {
  isAdmin: boolean;
};
Nach dem Login kopieren

Schnittstellen

Eine Schnittstelle ist eine weitere Möglichkeit, die Form eines Objekts zu definieren. Es ist starrer als Typen und wird hauptsächlich zum Definieren von Objektformen und Klassenverträgen verwendet.

interface User {
  name: string;
  age: number;
}

interface Admin extends User {
  isAdmin: boolean;
}
Nach dem Login kopieren

Warum ich Typen bevorzuge

  • Union

Mit Union-Typen können Sie einen Typ definieren, der einer von mehreren Typen sein kann. Dies ist praktisch für Funktionsparameter und Rückgabetypen. Hier kann ID entweder eine Zeichenfolge oder eine Zahl sein, was die Leistungsfähigkeit von Union-Typen demonstriert.

type ID = string | number;

function getUserId(id: ID): string {
  return `User ID: ${id}`;
}
Nach dem Login kopieren
  • String-Literale

Mit Literaltypen können Sie genaue Werte angeben, die eine Variable haben kann. Dies kann sehr nützlich sein, um Konstanten oder Konfigurationsoptionen zu definieren.

type Direction = 'north' | 'south' | 'east' | 'west';

function move(direction: Direction) {
  console.log(`Moving ${direction}`);
}

move('north');
Nach dem Login kopieren
  • Bedingte Typen

Typen ermöglichen die Erstellung von bedingten Typen und ermöglichen die Auswahl von Typen basierend auf Bedingungen

type Check<T> = T extends string ? string : number;

let result1: Check<string>; // result1 is of type string
let result2: Check<number>; // result2 is of type number
Nach dem Login kopieren
  • Kreuzung

Mit Kreuzungstypen können Sie mehrere Typen zu einem kombinieren. Dies ist besonders nützlich für die Erstellung komplexer Schriftkompositionen.

type Person = {
  name: string;
  age: number;
};

type Employee = {
  employeeId: number;
};

type EmployeeDetails = Person & Employee;

const employee: EmployeeDetails = {
  name: 'Dev',
  age: 30,
  employeeId: 12345,
};
Nach dem Login kopieren

Die Wahl zwischen Typen und Schnittstellen hängt letztendlich von Ihrem spezifischen Anwendungsfall und Ihren persönlichen Vorlieben ab. Wenn Sie jedoch die Stärken jedes einzelnen verstehen, können Sie fundiertere Entscheidungen treffen und besseren TypeScript-Code schreiben.

Das obige ist der detaillierte Inhalt vonWarum man Typen anstelle von Schnittstellen wählen sollte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ersetzen Sie Stringzeichen in JavaScript Ersetzen Sie Stringzeichen in JavaScript Mar 11, 2025 am 12:07 AM

Ersetzen Sie Stringzeichen in JavaScript

Benutzerdefinierte Google -Search -API -Setup -Tutorial Benutzerdefinierte Google -Search -API -Setup -Tutorial Mar 04, 2025 am 01:06 AM

Benutzerdefinierte Google -Search -API -Setup -Tutorial

Beispielfarben JSON -Datei Beispielfarben JSON -Datei Mar 03, 2025 am 12:35 AM

Beispielfarben JSON -Datei

8 atemberaubende JQuery -Seiten -Layout -Plugins 8 atemberaubende JQuery -Seiten -Layout -Plugins Mar 06, 2025 am 12:48 AM

8 atemberaubende JQuery -Seiten -Layout -Plugins

10 JQuery Syntax Highlighters 10 JQuery Syntax Highlighters Mar 02, 2025 am 12:32 AM

10 JQuery Syntax Highlighters

Erstellen Sie Ihre eigenen AJAX -Webanwendungen Erstellen Sie Ihre eigenen AJAX -Webanwendungen Mar 09, 2025 am 12:11 AM

Erstellen Sie Ihre eigenen AJAX -Webanwendungen

Was ist ' this ' in JavaScript? Was ist ' this ' in JavaScript? Mar 04, 2025 am 01:15 AM

Was ist ' this ' in JavaScript?

10 JavaScript & JQuery MVC -Tutorials 10 JavaScript & JQuery MVC -Tutorials Mar 02, 2025 am 01:16 AM

10 JavaScript & JQuery MVC -Tutorials

See all articles