Schnittstellentypprüfung in TypeScript
In TypeScript definieren Schnittstellen Verträge, denen Objekte folgen können, aber sie erzwingen ihre Implementierung nicht zur Laufzeit . Dies bedeutet, dass die Verwendung von „instanceof“ zum Überprüfen, ob eine Variable eine Schnittstelle implementiert, fehlschlägt.
Um eine Laufzeit-Typprüfung für Schnittstellen zu erreichen, können Sie benutzerdefinierte Typschutzvorrichtungen verwenden. Dies sind Funktionen, die ein Objekt als Argument verwenden und einen booleschen Wert zurückgeben, der angibt, ob es die gewünschte Schnittstelle implementiert:
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); }
Für Schnittstellen mit einer großen Anzahl von Mitgliedern können Sie eine Diskriminatoreigenschaft hinzufügen:
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); }
Dies ermöglicht eine effiziente Typprüfung, ohne dass alle Mitglieder einzeln überprüft werden müssen.
Das obige ist der detaillierte Inhalt vonWie erreicht man eine Laufzeit-Typprüfung für Schnittstellen in TypeScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!