Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie führe ich Laufzeittypprüfungen für Schnittstellen in TypeScript durch?

DDD
Freigeben: 2024-11-24 18:17:11
Original
278 Leute haben es durchsucht

How to Perform Runtime Type Checks on Interfaces in TypeScript?

Schnittstellentypprüfung in TypeScript: Eine Reise zur Laufzeitüberprüfung

TypeScript bietet Typprüfungsfunktionen, um die Korrektheit des Codes sicherzustellen. Beim Umgang mit Schnittstellen kann es jedoch schwierig sein, zur Laufzeit zu überprüfen, ob eine Variable eine Schnittstelle implementiert.

Beachten Sie den folgenden Code:

interface A {
    member: string;
}

var a: any = { member: "foobar" };

if (a instanceof A) alert(a.member);
Nach dem Login kopieren

Dieser Code löst beim Kompilieren einen Fehler aus, der besagt, dass „Der Name A existiert im aktuellen Bereich nicht.“ Trotz der Schnittstellendeklaration stößt TypeScript zur Laufzeit auf Probleme aufgrund der fehlenden Schnittstellendarstellung in JavaScript.

TypeScript Custom Type Guards

Um diese Einschränkung zu überwinden, führt TypeScript benutzerdefinierte ein Typwächter, mit denen Sie nach Schnittstellen suchen können, ohne sich auf die Instanz von verlassen zu müssen. Hier ist ein Beispiel:

interface A {
    member: string;
}

function instanceOfA(object: any): object is A {
    return 'member' in object;
}

var a: any = { member: "foobar" };

if (instanceOfA(a)) {
    alert(a.member);
}
Nach dem Login kopieren

Dieser Code prüft erfolgreich, ob a die A-Schnittstelle mithilfe des Typschutzes „instanceOfA“ implementiert.

Umgang mit komplexen Schnittstellenimplementierungen

Für Szenarien, in denen eine Schnittstelle mehrere Mitglieder hat, kann ein Diskriminator-Ansatz nützlich sein. Hier ist ein einfaches Beispiel:

interface A {
    discriminator: 'I-AM-A';
    member: string;
}

function instanceOfA(object: any): object is A {
    return object.discriminator === 'I-AM-A';
}

var a: any = { discriminator: 'I-AM-A', member: "foobar" };

if (instanceOfA(a)) {
    alert(a.member);
}
Nach dem Login kopieren

In diesem Fall fungiert die Diskriminatoreigenschaft als eindeutige Kennung für Objekte, die die A-Schnittstelle implementieren.

Fazit

Die benutzerdefinierten Typwächter von TypeScript und der Diskriminator-Ansatz ermöglichen es Entwicklern, Laufzeittypprüfungen an Schnittstellen durchzuführen, um die Korrektheit des Codes sicherzustellen und potenzielles Potenzial zu verhindern Fehler.

Das obige ist der detaillierte Inhalt vonWie führe ich Laufzeittypprüfungen für Schnittstellen in TypeScript durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage