Modules externes et espaces de noms
Contrairement à l'intuition, les espaces de noms dans les modules externes TypeScript, comme le démontre l'extrait de code, génèrent un comportement inattendu. Il s'agit d'une idée fausse enracinée dans l'utilisation malavisée des espaces de noms pour l'organisation des modules et la prévention des collisions de noms.
Pour comprendre pourquoi, considérons l'analogie suivante avec les bonbons :
Analogie de la Candy Cup : idées fausses
-
Version 1 : Coupes individuelles pour chacun Candy : Chaque module possède son propre espace de noms, les isolant efficacement sans aucune organisation significative.
-
Version 2 : Une tasse partagée pour tous les bonbons : Ce scénario simule un espace de noms global qui fusionne tous types, ce qui n'est pas applicable aux modules qui fonctionnent dans des portées distinctes.
Rejet des espaces de noms pour les modules
-
Organisation : les modules fournissent intrinsèquement une organisation basée sur le système de fichiers, rendant les espaces de noms redondants.
-
Collisions de noms : Les modules éliminent ce problème puisqu'ils empêchent les collisions de noms de types au sein de leur portée.
Directives d'organisation des modules alternatifs
-
Exporter proche du niveau supérieur : utiliser l'exportation par défaut pour les exportations uniques et placez plusieurs exportations au niveau supérieur.
-
Utiliser les modules d'espace de noms uniquement pour les grandes exportations Ensembles : envisagez d'utiliser des modules d'espace de noms uniquement lors de l'exportation d'un grand nombre d'entités.
Drapeaux rouges en cas de structure de module inappropriée
- Modules d'exportation qui ne définissent rien d'autre qu'une autre déclaration de module (déplacer les exportations au niveau supérieur).
- Utilisez la classe d'exportation ou la fonction d'exportation sans valeur par défaut d'exportation pour un seul exports.
- Plusieurs fichiers avec des déclarations de module d'exportation identiques (ils ne fusionnent pas).
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!