Vérification du type d'interface dans TypeScript
Dans TypeScript, les interfaces définissent des contrats que les objets peuvent suivre, mais elles n'appliquent pas leur implémentation au moment de l'exécution . Cela signifie que l'utilisation de instanceof pour vérifier si une variable implémente une interface échouera.
Pour réaliser la vérification du type d'exécution pour les interfaces, vous pouvez utiliser des gardes de type personnalisés. Ce sont des fonctions qui prennent un objet en argument et renvoient un booléen indiquant s'il implémente l'interface souhaitée :
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); }
Pour les interfaces avec un grand nombre de membres, vous pouvez ajouter une propriété discriminatrice :
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); }
Cela permet une vérification de type efficace sans avoir à vérifier tous les membres individuellement.
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!