Maison > interface Web > js tutoriel > le corps du texte

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

DDD
Libérer: 2024-11-17 13:24:01
original
606 Les gens l'ont consulté

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);
}
Copier après la connexion

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);
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal