Maison > interface Web > js tutoriel > Comment effectuer la vérification du type d'interface d'exécution dans TypeScript ?

Comment effectuer la vérification du type d'interface d'exécution dans TypeScript ?

Susan Sarandon
Libérer: 2024-11-16 16:52:03
original
726 Les gens l'ont consulté

How to Perform Runtime Interface Type Checking in TypeScript?

Vérification du type d'interface dans TypeScript

Dans TypeScript, un dilemme courant se pose lorsque l'on tente de vérifier si une variable de type any adhère à une interface spécifiée au moment de l’exécution. 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

Ici, le terrain de jeu TypeScript génère une erreur sur la dernière ligne, affirmant que le nom A n'est pas défini dans la portée actuelle. Cependant, cela est incorrect car A est clairement défini. Pour résoudre ce problème, il est important de comprendre que les interfaces n'ont aucune représentation dans le JavaScript généré, ce qui rend impossible les vérifications de type à l'exécution.

Ce dilemme découle de la nature dynamique de JavaScript, où les interfaces n'ont pas d'existence définie. Par conséquent, la question se pose : existe-t-il un moyen de vérifier le type des interfaces dans TypeScript ?

L'auto-complétion du terrain de jeu révèle en effet une méthode appelée Implements, nous laissant nous demander comment l'utiliser. C'est ici que les protections de type personnalisées entrent en jeu :

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

Avec cette approche, vous pouvez vérifier le type d'une interface sans avoir besoin d'une instance de. Cependant, pour les cas plus complexes, envisagez d'utiliser des discriminateurs pour gérer vos propres discriminateurs et assurez-vous qu'aucun doublon ne se produit.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal