Maison >interface Web >js tutoriel >Comment réaliser la vérification du type d'exécution pour les interfaces dans TypeScript ?

Comment réaliser la vérification du type d'exécution pour les interfaces dans TypeScript ?

DDD
DDDoriginal
2024-11-17 13:24:01666parcourir

How to Achieve Runtime Type Checking for Interfaces in TypeScript?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn