Problème :
Vous avez du code utilisant des espaces de noms avec TypeScript externe modules, mais vous rencontrez des erreurs ou un comportement inattendu. Voici votre code :
// baseTypes.ts export namespace Living.Things { export class Animal { move() { /* ... */ } } export class Plant { photosynthesize() { /* ... */ } } } // dog.ts import b = require('./baseTypes'); export namespace Living.Things { // Error, can't find name 'Animal', ?? export class Dog extends Animal { woof() { } } } // tree.ts // Error, can't use the same name twice, ?? import b = require('./baseTypes'); import b = require('./dogs'); namespace Living.Things { // Why do I have to write b.Living.Things.Plant instead of b.Plant?? class Tree extends b.Living.Things.Plant { } }
Analogie de la Candy Cup :
Imaginez organiser des bonbons sur des feuilles de papier. Si chaque feuille est un module distinct, créer une tasse étiquetée « A » sur chaque feuille n'est pas utile : c'est comme créer des étapes supplémentaires sans réellement organiser vos bonbons.
Going Cupless :
Au lieu d'utiliser des espaces de noms, pensez à écrire votre code comme ceci :
// Mod1.ts export class Twix { ... } // Mod2.ts export class PeanutButterCup { ... } // Mod3.ts export class KitKat { ... }
Cela crée une structure plus simple sans avoir besoin de espaces de noms inutiles.
Raisons pour lesquelles les espaces de noms ne sont pas idéaux pour les modules :
Conseils pour les modules externes :
Drapeaux rouges :
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!