// Espace de nom

namespace Livres {
    class Livre {
        private titre:string;
        public get Titre() {
            return this.titre;
        }
        constructor(titre:string) {
            this.titre = titre;
        }
    }
    export class Auteur {
        nom:string;
        prenom:string;
        livres:Livre[];

        constructor(nom:string,prenom:string) {
            this.nom = nom;
            this.prenom = prenom;
            this.livres = [];
        }

        ajouterLivre(titre:string):void {
            this.livres.push(new Livre(titre));
        }

        biographie():void {
            this.livres.forEach(
                (livre)=>console.log( "-" + livre.Titre)
            );
        }
    }
}

namespace Dessins {
    class Dessin {
        private titre:string;
        constructor(titre:string) {
            this.titre = titre;
        }
        public get Titre() {
            return this.titre;
        }
    }
    export class Auteur {
        nom:string;
        prenom:string;
        dessins:Dessin[];

        constructor(nom:string,prenom:string) {
            this.nom = nom;
            this.prenom = prenom;
            this.dessins = [];
        }

        ajouterDessin(titre:string):void {
            this.dessins.push(new Dessin(titre));
        }

        planches():void {
            this.dessins.forEach(
                (dessin)=>console.log( "-" + dessin.Titre ) );
        }

    }
}

const brillant : Livres.Auteur = new Livres.Auteur( "brillant", "alexandre" );
brillant.ajouterLivre( "JavaScript" );
brillant.biographie();

const sempe : Dessins.Auteur = new Dessins.Auteur( "sempé", "jean-jacques" );
sempe.ajouterDessin( "le petit nicolas");
sempe.planches();


