Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie führe ich eine Typprüfung der Laufzeitschnittstelle in TypeScript durch?

Susan Sarandon
Freigeben: 2024-11-16 16:52:03
Original
656 Leute haben es durchsucht

How to Perform Runtime Interface Type Checking in TypeScript?

Überprüfung des Schnittstellentyps in TypeScript

In TypeScript tritt ein häufiges Dilemma auf, wenn versucht wird, zu überprüfen, ob eine Variable vom Typ „any“ eingehalten wird eine angegebene Schnittstelle zur Laufzeit. Betrachten Sie den folgenden Code:

interface A {
    member: string;
}

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

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

Hier generiert der TypeScript-Playground in der letzten Zeile einen Fehler und behauptet, dass der Name A im aktuellen Bereich undefiniert sei. Dies ist jedoch falsch, da A klar definiert ist. Um dieses Problem zu lösen, ist es wichtig zu verstehen, dass Schnittstellen keine Darstellung im generierten JavaScript haben, wodurch Laufzeittypprüfungen unmöglich sind.

Dieses Dilemma ergibt sich aus der dynamischen Natur von JavaScript, bei der Schnittstellen keine definierte Existenz haben. Folglich stellt sich die Frage: Gibt es eine Möglichkeit, in TypeScript eine Typprüfung für Schnittstellen durchzuführen?

Die automatische Vervollständigung des Spielplatzes enthüllt tatsächlich eine Methode namens „Implements“, sodass wir uns fragen, wie wir sie verwenden sollen. Hier kommen benutzerdefinierte Typwächter ins Spiel:

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

Mit diesem Ansatz können Sie eine Schnittstelle typüberprüfen, ohne dass eine Instanz von erforderlich ist. Erwägen Sie jedoch bei komplexeren Fällen die Verwendung von Diskriminatoren, um Ihre eigenen Diskriminatoren zu verwalten und sicherzustellen, dass keine Duplikate entstehen.

Das obige ist der detaillierte Inhalt vonWie führe ich eine Typprüfung der Laufzeitschnittstelle 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage