Inhaltsverzeichnis
类型和类型别名
接口
interface 和 type 的相似之处
两者都可以被继承
实现
interface 和 type 的区别
并集和交集类型
声明合并
元组类型
🎜Beide können vererbt werden🎜
🎜implementation🎜
🎜Vereinigungs- und Schnittmengentypen🎜
🎜Declaration Merging🎜
🎜Tupeltyp🎜
Heim Web-Frontend js-Tutorial Ein einfacher Vergleich, um den Unterschied zwischen Schnittstelle und Typ in TypeScript zu erkennen

Ein einfacher Vergleich, um den Unterschied zwischen Schnittstelle und Typ in TypeScript zu erkennen

Jun 29, 2021 am 11:40 AM
interface javascript type typescript

Was ist der Unterschied zwischen Schnittstelle und Typ? In diesem Artikel werden Schnittstelle und Typ in TypeScript verglichen, Sie werden über den Unterschied zwischen Schnittstelle und Typ informiert und es wird vorgestellt, welche Schnittstelle Sie bei der tatsächlichen Verwendung auswählen sollten!

Ein einfacher Vergleich, um den Unterschied zwischen Schnittstelle und Typ in TypeScript zu erkennen

Wenn wir TypeScript verwenden, verwenden wir interface und type. Normalerweise scheint es, dass ihre Verwendung gleich ist und beide sehr unterschiedlich sind gut, daher ist es selten, den Unterschied zwischen ihnen wirklich zu verstehen. Wir haben Typen entwickelt, die oft so definiert sind: interfacetype,平时感觉他们用法好像是一样的,没啥区别,都能很好的使用,所以也很少去真正的理解它们之间到底有啥区别。我们开发过经常或这么来定义类型:

interface Point {
    x: number;
    y: number;
}
Nach dem Login kopieren

或者这样定义:

type Point = {
    x: number;
    y: number;
};
Nach dem Login kopieren

interfacetype之间的差异不仅仅是次要语法声明。那么,今天我们就来看看这两家伙之间存在啥不可告人的秘密。

类型和类型别名

TypeScript 有 booleannumberstring 等基本类型。如果我们想声明高级类型,我们就需要使用类型别名

类型别名指的是为类型创建新名称。需要注意的是,我们并没有定义一个新类型。使用type关键字可能会让我们觉得是创建一个新类型,但我们只是给一个类型一个新名称。

所以我们所以 type 时,不是在创建新的类别,而是定义类型的一个别名而已。

接口

type相反,接口仅限于对象类型。它们是描述对象及其属性的一种方式。类型别名声明可用于任何基元类型、联合或交集。在这方面,接口被限制为对象类型

interface 和 type 的相似之处

在讨论它们的区别之前,我们先来看看它们的相似之处。

两者都可以被继承

interface 和 type 都可以继承。另一个值得注意的是,接口和类型别名并不互斥。类型别名可以继承接口,反之亦然。

对于一个接口,继承另一个接口

interface PartialPointX { x: number; }
interface Point extends PartialPointX { y: number; }
Nach dem Login kopieren

或者,继承一个类型

type PartialPointX = { x: number; };
interface Point extends PartialPointX { y: number; }
Nach dem Login kopieren

类型继承另一个类型:

type PartialPointX = { x: number; };
type Point = PartialPointX & { y: number; };
Nach dem Login kopieren

或者,继承一个接口:

interface PartialPointX { x: number; }
type Point = PartialPointX & { y: number; };
Nach dem Login kopieren

实现

类可以实现接口以及类型(TS 2.7+)。但是,类不能实现联合类型。

interface Point {
 x: number;
 y: number;
}

class SomePoint implements Point {
 x = 1;
 y = 2;
}

type AnotherPoint = {
 x: number;
 y: number;
};

class SomePoint2 implements AnotherPoint {
 x = 1;
 y = 2;
}

type PartialPoint = { x: number; } | { y: number; };

// Following will throw an error
class SomePartialPoint implements PartialPoint {
 x = 1;
 y = 2;
}
Nach dem Login kopieren

interface 和 type 的区别

并集和交集类型

虽然接口可以被扩展和合并,但它们不能以联合和交集的形式组合在一起。类型可以使用联合和交集操作符来形成新的类型。

// object
type PartialPointX = { x: number; };
type PartialPointY = { y: number; };

// 并集
type PartialPoint = PartialPointX | PartialPointY;

// 交集
type PartialPoint = PartialPointX & PartialPointY;
Nach dem Login kopieren

声明合并

TypeScript编译器合并两个或多个具有相同名称的接口。 这不适用于类型。 如果我们尝试创建具有相同名称但不同的属性的两种类型,则TypeScript编译器将抛出错误。

// These two declarations become:
// interface Point { x: number; y: number; }
interface Point { x: number; }
interface Point { y: number; }

const point: Point = { x: 1, y: 2 };
Nach dem Login kopieren

元组类型

元组(键值对)只能通过type

type Point = [x: number, y: number];
Nach dem Login kopieren

oder so:

interface Point {
  coordinates: [number, number]
}
Nach dem Login kopieren
Der Unterschied zwischen interface und type ist mehr als nur eine geringfügige Syntaxdeklaration . Heute werfen wir einen Blick auf die verborgenen Geheimnisse dieser beiden Typen.

Typen und Typaliase

TypeScript verfügt über Grundtypen wie boolean, number und string. Wenn wir Typen höherer Ebene deklarieren möchten, müssen wir

Typaliase

verwenden.

Typ-Aliasing bezieht sich auf die Erstellung eines neuen Namens für einen Typ.

Es ist zu beachten, dass

wir keinen neuen Typ definieren. Die Verwendung des Schlüsselworts type mag so aussehen, als würden wir einen neuen Typ erstellen, aber wir geben einem Typ lediglich einen neuen Namen.

Wenn wir also Typ verwenden, erstellen wir keine neue Kategorie, sondern definieren lediglich einen Alias ​​​​des Typs.

Schnittstelle

🎜🎜Im Gegensatz zu type ist die Schnittstelle auf Objekttypen beschränkt. Sie sind eine Möglichkeit, Objekte und ihre Eigenschaften zu beschreiben. Typaliasdeklarationen können für jeden primitiven Typ, jede Union oder jeden Schnittpunkt verwendet werden. 🎜In dieser Hinsicht sind Schnittstellen auf Objekttypen beschränkt🎜. 🎜🎜🎜Ähnlichkeiten zwischen Schnittstelle und Typ🎜🎜🎜Bevor wir ihre Unterschiede diskutieren, werfen wir einen Blick auf ihre Ähnlichkeiten. 🎜

🎜Beide können vererbt werden🎜

🎜Sowohl Schnittstelle als auch Typ können vererbt werden. Beachten Sie außerdem, dass sich Schnittstellen und Typaliase nicht gegenseitig ausschließen. Typaliase können Schnittstellen erben und umgekehrt. 🎜🎜Erweitern Sie für eine Schnittstelle eine andere Schnittstelle 🎜rrreee🎜 Oder erweitern Sie einen Typ 🎜rrreee🎜Der Typ erbt einen anderen Typ: 🎜rrreee🎜Oder erweitern Sie eine Schnittstelle: 🎜rrreee

🎜implementation🎜

🎜class Kann Implementieren Sie sowohl Schnittstellen als auch Typen (TS 2.7+). Allerdings können Klassen keine Union-Typen implementieren. 🎜rrreee🎜🎜Der Unterschied zwischen Schnittstelle und Typ🎜🎜

🎜Vereinigungs- und Schnittmengentypen🎜

🎜Schnittstellen können zwar erweitert und zusammengeführt werden, sie können jedoch nicht in Form von Vereinigungen und Schnittmengen miteinander kombiniert werden. Typen können Vereinigungs- und Schnittpunktoperatoren verwenden, um neue Typen zu bilden. 🎜rrreee

🎜Declaration Merging🎜

🎜Der TypeScript-Compiler führt zwei oder mehr Schnittstellen mit demselben Namen zusammen. Dies funktioniert nicht mit Typen. Wenn wir versuchen, zwei Typen mit demselben Namen, aber unterschiedlichen Eigenschaften zu erstellen, gibt der TypeScript-Compiler einen Fehler aus. 🎜rrreee

🎜Tupeltyp🎜

🎜Tupel (Schlüssel-Wert-Paare) können nur über das Schlüsselwort type definiert werden. 🎜rrreee🎜 Es ​​gibt keine Möglichkeit, ein Tupel über eine Schnittstelle zu deklarieren. Allerdings können wir Tupel innerhalb von Schnittstellen verwenden🎜rrreee🎜🎜Welches sollten wir verwenden? 🎜🎜🎜Generell sind Schnittstellen und Typen sehr ähnlich. 🎜🎜Für öffentliche API-Definitionen in Bibliotheken oder Typdefinitionen von Drittanbietern sollten Schnittstellen verwendet werden, um Funktionen zum Zusammenführen von Deklarationen bereitzustellen. Ansonsten können wir verwenden, was wir wollen, aber es sollte in der gesamten Codebasis konsistent sein. 🎜🎜🎜Englische Originaladresse: https://www.wisdomgeek.com/development/web-development/typescript/typescript-the-difference-between-interface-and-type/🎜🎜Autor: SARANSH KATARIA🎜🎜🎜Mehr für Programmierkenntnisse finden Sie unter: 🎜Einführung in die Programmierung🎜! ! 🎜

Das obige ist der detaillierte Inhalt vonEin einfacher Vergleich, um den Unterschied zwischen Schnittstelle und Typ in TypeScript zu erkennen. 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 KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

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)

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript Dec 17, 2023 pm 02:54 PM

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Dec 17, 2023 pm 12:09 PM

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript Dec 17, 2023 am 09:39 AM

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

Beheben Sie den Ubuntu-Fehler beim Mounten der mobilen Festplatte: unbekannter Dateisystemtyp exfat Beheben Sie den Ubuntu-Fehler beim Mounten der mobilen Festplatte: unbekannter Dateisystemtyp exfat Jan 05, 2024 pm 01:18 PM

Beim Mounten einer mobilen Festplatte durch Ubuntu tritt ein Fehler auf: mount: unlimitedfilesystemtype'exfat'. Die Verarbeitungsmethode lautet wie folgt: Ubuntu13.10 oder exfat-fuse installieren: sudoapt-getinstallexfat-fuseUbuntu13.04 oder niedriger sudoapt-add-repositoryppa:relan /exfatsudoapt-getupdatesudoapt-getinstallfuse- exfatCentOS Linux Fehler beim Mounten des USB-Datenträgers im Exfat-Format zum Laden von extfa in CentOS

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Dec 17, 2023 pm 05:13 PM

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript Jan 05, 2024 pm 01:37 PM

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

See all articles