Vérification du type d'interface dans TypeScript
Dans TypeScript, vous pouvez rencontrer un scénario dans lequel il est crucial de déterminer la conformité d'un objet avec une interface prédéfinie au moment de l'exécution. . Bien que les vérifications de type de classe exploitant le mot-clé instanceof soient simples, son application aux interfaces présente un défi.
Les approches traditionnelles, telles que le recours à l'opérateur instanceof, s'avèrent inefficaces car les interfaces ne sont pas représentées en tant que types distincts dans le JavaScript compilé. Au lieu de cela, les gardes de type personnalisés offrent une solution :
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); }
Cette approche permet la vérification à l'exécution de la conformité de l'interface sans avoir besoin du mot-clé instanceof.
Dans les situations où plusieurs membres doivent être vérifiés, un une propriété discriminante peut être introduite. Cette approche nécessite de gérer vos propres discriminateurs et de garantir l'unicité pour éviter les conflits :
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); }
En employant des gardes de type ou des discriminateurs personnalisés, vous pouvez effectuer efficacement des vérifications de type d'interface au moment de l'exécution, améliorant ainsi la robustesse de vos applications TypeScript.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!