Inhaltsverzeichnis
Grammatik
Beispiel 2
Ausgabe
Heim Web-Frontend js-Tutorial So erzwingen Sie den Typ für indizierte Mitglieder von Typescript-Objekten

So erzwingen Sie den Typ für indizierte Mitglieder von Typescript-Objekten

Aug 23, 2023 pm 02:25 PM

So erzwingen Sie den Typ für indizierte Mitglieder von Typescript-Objekten

Die Programmiersprache TypeScript basiert auf JavaScript, das stark typisiert, objektorientiert und kompiliert ist. Die Sprache wird durch Tools wie statische Typisierung, Klassen und Schnittstellen verbessert, die bei der Früherkennung von Fehlern helfen und JavaScript benutzerfreundlicher machen. Eine Funktion von TypeScript ist die Möglichkeit, die Typen indizierter Mitglieder eines Objekts zu erzwingen. Dieser Vorgang wird auch als Indexsignierung bezeichnet.

Eine Indexsignatur ist eine Reihe von Schlüssel-Wert-Paaren, die die vielen Eigenschaften beschreiben, die ein Objekt haben kann. Geben Sie den Typ des Eigenschaftsnamens und den Typ des Eigenschaftswerts mithilfe von Werten bzw. Schlüsseln an. Um die Art der Eigenschaften eines Objekts durchzusetzen, können Benutzer die Indexsignaturfunktion von TypeScript nutzen.

Indexsignaturen können bestimmte Objekteigenschaften effektiv erzwingen, aber auch das Verständnis und die Wartung von Code erschweren. Daher ist es sehr wichtig, Indexsignaturen nur bei Bedarf zu verwenden.

Grammatik

let objectName: {
   [key: string]: string
}
Nach dem Login kopieren

In der obigen Syntax ist „objectName“ der Name unseres Objekts und wir erzwingen, dass der Schlüssel vom Typ „String“ und der Wert vom Typ „String“ ist.

Beispiel 1

In diesem Beispiel haben wir zwei Schnittstellen, Person und Telefonbuch. Die Person-Schnittstelle definiert die Struktur eines Personenobjekts, einschließlich zweier Attribute: Name (Zeichenfolge) und Alter (Zahl). Die PhoneBook-Schnittstelle definiert eine Indexsignatur, wobei der String-Typ als Schlüssel und die Person-Schnittstelle als Wert verwendet werden. Das bedeutet, dass jedes Objekt, das die PhoneBook-Schnittstelle implementiert, nur Eigenschaften haben kann, deren Schlüsseltyp String und deren Werttyp Person ist.

Dann definieren wir eine Variable phoneBook vom Typ PhoneBook und weisen ihr ein leeres Objekt zu. Dann fügen wir einige Einträge zum Telefonbuch hinzu, wobei die Schlüssel Namen und die Werte Personenobjekte sein sollten. Abschließend überprüfen wir anhand des Konsolenprotokolls, dass der Compiler einen Fehler meldet, wenn wir versuchen, einen anderen Variablentyp als den oben genannten einzufügen.

// Person interface
interface Person {
   name: string
   age: number
}

// PhoneBook interface
interface PhoneBook {
   [key: string]: Person
}

let phoneBook: PhoneBook = {}

phoneBook['Person 1'] = { name: 'ABC', age: 30 }
phoneBook['Person 2'] = { name: 'XYZ', age: 25 }
phoneBook['Person 3'] = { name: 'MNO', age: 10 }

console.log(phoneBook)

Nach dem Login kopieren

Beim Kompilieren wird der folgende JavaScript-Code generiert: −

var phoneBook = {};
phoneBook['Person 1'] = { name: 'ABC', age: 30 };
phoneBook['Person 2'] = { name: 'XYZ', age: 25 };
phoneBook['Person 3'] = { name: 'MNO', age: 10 };
console.log(phoneBook);
Nach dem Login kopieren

Ausgabe

Der obige Code erzeugt die folgende Ausgabe:

{ 'Person 1': { name: 'ABC', age: 30 },
  'Person 2': { name: 'XYZ', age: 25 },
  'Person 3': { name: 'MNO', age: 10 } }
Nach dem Login kopieren

Beispiel 2

In diesem Beispiel haben wir eine Schnittstelle Produkt, die die Struktur eines Produktobjekts mit zwei Eigenschaften definiert: Name (Zeichenfolge) und Preis (Zahl). Dann haben wir eine weitere Schnittstelle „ShoppingCart“, die eine Indexsignatur darstellt und dabei einen numerischen Typ als Schlüssel und die Schnittstelle „Produkt“ als Wert verwendet. Jedes Objekt, das die ShoppingCart-Schnittstelle implementiert, kann nur Eigenschaften mit dem Schlüsseltyp „Number“ und dem Werttyp „Product“ haben.

Dann definieren wir einen variablen Warenkorb vom Typ ShoppingCart und weisen ihm ein leeres Objekt zu. Dann fügen wir dem Warenkorb einige Einträge hinzu, wobei der Schlüssel die Produkt-ID und der Wert das Produktobjekt sein sollte. Wir können sehen, dass die Artikel korrekt zum Warenkorb hinzugefügt wurden. Wenn der Wert nicht vom Typ „Produkt“ ist oder dem Produktobjekt eine der in der Produktschnittstelle definierten Eigenschaften fehlt, tritt ein Fehler auf.

interface Product {
   name: string
   price: number
}

// ShoppingCart interface
interface ShoppingCart {
   [key: number]: Product
}

let cart: ShoppingCart = {}

cart[1] = { name: 'Shirt', price: 20 }
cart[2] = { name: 'Pants', price: 30 }
cart[3] = { name: 'Shoes', price: 40 }

console.log(cart[1])
console.log(cart[2])
console.log(cart[3])
Nach dem Login kopieren

Beim Kompilieren wird der folgende JavaScript-Code generiert: −

var cart = {};
cart[1] = { name: 'Shirt', price: 20 };
cart[2] = { name: 'Pants', price: 30 };
cart[3] = { name: 'Shoes', price: 40 };
console.log(cart[1]);
console.log(cart[2]);
console.log(cart[3]);
Nach dem Login kopieren

Ausgabe

Der obige Code erzeugt die folgende Ausgabe -

{ name: 'Shirt', price: 20 }
{ name: 'Pants', price: 30 }
{ name: 'Shoes', price: 40 }
Nach dem Login kopieren

Diese Beispiele veranschaulichen, wie Indexsignaturen verwendet werden, um die Eigenschaftstypen eines Objekts zu erzwingen. Indexsignaturen sind eine leistungsstarke Funktion, die Ihnen dabei helfen kann, robusteren und wartbareren Code zu schreiben. Es ist jedoch wichtig, sie mit Bedacht und nur bei Bedarf einzusetzen.

Das obige ist der detaillierte Inhalt vonSo erzwingen Sie den Typ für indizierte Mitglieder von Typescript-Objekten. 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)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
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)

Wie erstelle ich meine eigenen JavaScript -Bibliotheken? Wie erstelle ich meine eigenen JavaScript -Bibliotheken? Mar 18, 2025 pm 03:12 PM

In Artikel werden JavaScript -Bibliotheken erstellt, veröffentlicht und aufrechterhalten und konzentriert sich auf Planung, Entwicklung, Testen, Dokumentation und Werbestrategien.

Wie optimiere ich den JavaScript -Code für die Leistung im Browser? Wie optimiere ich den JavaScript -Code für die Leistung im Browser? Mar 18, 2025 pm 03:14 PM

In dem Artikel werden Strategien zur Optimierung der JavaScript -Leistung in Browsern erörtert, wobei der Schwerpunkt auf die Reduzierung der Ausführungszeit und die Minimierung der Auswirkungen auf die Lastgeschwindigkeit der Seite wird.

Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools? Wie debugge ich den JavaScript -Code effektiv mithilfe von Browser -Entwickler -Tools? Mar 18, 2025 pm 03:16 PM

In dem Artikel werden effektives JavaScript -Debuggen mithilfe von Browser -Entwickler -Tools, der Schwerpunkt auf dem Festlegen von Haltepunkten, der Konsole und der Analyse der Leistung erörtert.

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Wie verwende ich Quellkarten zum Debuggen, um den JavaScript -Code zu debuggen? Wie verwende ich Quellkarten zum Debuggen, um den JavaScript -Code zu debuggen? Mar 18, 2025 pm 03:17 PM

In dem Artikel wird erläutert, wie Quellkarten zum Debuggen von JavaScript verwendet werden, indem er auf den ursprünglichen Code zurückgegeben wird. Es wird erläutert, dass Quellenkarten aktiviert, Breakpoints eingestellt und Tools wie Chrome Devtools und WebPack verwendet werden.

Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Apr 04, 2025 pm 05:09 PM

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Apr 04, 2025 pm 05:12 PM

Eingehende Diskussion der Ursachen des Unterschieds in der Konsole.log-Ausgabe. In diesem Artikel wird die Unterschiede in den Ausgabeergebnissen der Konsolenfunktion in einem Code analysiert und die Gründe dafür erläutert. � ...

See all articles