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);
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); }
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); }
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!