Skip to content

Les namespaces

Les namespaces en TypeScript sont un moyen de regrouper des fonctionnalités logiquement liées et de gérer les noms dans des programmes plus vastes. En encapsulant des classes, interfaces, fonctions et variables au sein de namespaces, vous pouvez éviter la pollution de l'espace de noms global et organiser votre code de manière plus structurée.

Utilisation des Namespaces

Pour définir un namespace, utilisez le mot-clé namespace suivi du nom du namespace et d'un bloc contenant ses membres.

typescript
namespace MonNamespace {
    export class MaClasse {
        // ...
    }

    export function maFonction() {
        // ...
    }
}
namespace MonNamespace {
    export class MaClasse {
        // ...
    }

    export function maFonction() {
        // ...
    }
}

Dans cet exemple, MaClasse et maFonction sont membres du MonNamespace. Le mot-clé export est utilisé pour rendre les membres accessibles à l'extérieur du namespace.

Accès aux Membres du Namespace

Pour accéder à des membres d'un namespace, utilisez le nom du namespace suivi d'un point et du nom du membre.

typescript
let objet = new MonNamespace.MaClasse();
MonNamespace.maFonction();
let objet = new MonNamespace.MaClasse();
MonNamespace.maFonction();

Imbrication de Namespaces

Les namespaces peuvent être imbriqués pour une organisation plus détaillée.

typescript
namespace MonNamespace {
    export namespace SousNamespace {
        export class AutreClasse {
            // ...
        }
    }
}

let autreObjet = new MonNamespace.SousNamespace.AutreClasse();
namespace MonNamespace {
    export namespace SousNamespace {
        export class AutreClasse {
            // ...
        }
    }
}

let autreObjet = new MonNamespace.SousNamespace.AutreClasse();

Namespaces et Modules

Bien que les namespaces puissent ressembler aux modules ES6, ils ont des objectifs différents :

  • Les namespaces sont principalement utilisés pour organiser le code au sein d'un même script ou projet.
  • Les modules sont utilisés pour organiser et encapsuler du code entre différents fichiers et gérer les dépendances entre eux.

Avantages des Namespaces

  • Prévention des Conflits : Aident à éviter les conflits de noms dans l'espace de noms global, surtout dans les gros projets.
  • Organisation du Code : Permettent de regrouper et d'organiser logiquement des parties de code liées.
  • Contrôle de Visibilité : Offrent un contrôle sur la visibilité des membres