Maison > interface Web > js tutoriel > Comment effectuer des vérifications de type d'exécution sur les interfaces dans TypeScript ?

Comment effectuer des vérifications de type d'exécution sur les interfaces dans TypeScript ?

DDD
Libérer: 2024-11-24 18:17:11
original
331 Les gens l'ont consulté

How to Perform Runtime Type Checks on Interfaces in TypeScript?

Vérification de type d'interface dans TypeScript : un parcours vers la vérification d'exécution

TypeScript offre des fonctionnalités de vérification de type pour garantir l'exactitude du code. Cependant, lorsqu'il s'agit d'interfaces, vérifier si une variable implémente une interface au moment de l'exécution peut être difficile.

Considérez le code suivant :

interface A {
    member: string;
}

var a: any = { member: "foobar" };

if (a instanceof A) alert(a.member);
Copier après la connexion

Ce code génère une erreur lors de la compilation, indiquant que "Le nom A n'existe pas dans le périmètre actuel." Malgré la déclaration de l'interface, TypeScript rencontre des problèmes lors de l'exécution en raison du manque de représentation de l'interface dans JavaScript.

TypeScript Custom Type Guards

Pour surmonter cette limitation, TypeScript introduit des tapez guards, vous permettant de vérifier les interfaces sans compter sur instanceof. Voici un exemple :

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

Ce code vérifie avec succès si a implémente l'interface A à l'aide du type guard instanceOfA.

Gestion des implémentations d'interfaces complexes

Pour les scénarios où une interface comporte plusieurs membres, une approche discriminatrice peut être utile. Voici un exemple simple :

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

Dans ce cas, la propriété discriminateur agit comme un identifiant unique pour les objets implémentant l'interface A.

Conclusion

Les protections de type personnalisées de TypeScript et l'approche discriminatrice permettent aux développeurs d'effectuer des vérifications de type à l'exécution sur les interfaces, garantissant ainsi l'exactitude du code et empêchant les erreurs potentielles. erreurs.

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