TypeScriptLeçon 10 sur 16
Classes et modificateurs d'accès
Une classe TypeScript est une classe JavaScript avec des types et des modificateurs d'accès. Ces modificateurs décident qui peut lire et modifier chaque champ.
L’essentiel
- public est la valeur par défaut : tout le monde peut utiliser le champ.
- private ne fonctionne qu'à l'intérieur de la classe ; protected l'ouvre aussi aux sous-classes.
- readonly s'affecte une seule fois, en général dans le constructeur.
- constructor(public readonly label: string) déclare et remplit un champ en une ligne.
- private n'est vérifié que par le compilateur ; la vraie confidentialité JavaScript passe par les champs #.
Exemple
interface Resettable { reset(): void;} class Counter implements Resettable { private count = 0; // "public readonly label" declares and fills a property in one go constructor(public readonly label: string) {} increment(): void { this.count++; } reset(): void { this.count = 0; } get value(): number { return this.count; }} const clicks = new Counter("clicks");clicks.increment();clicks.increment();// clicks.count = 10; // error: 'count' is private// clicks.label = "taps"; // error: 'label' is read-only console.log(`${clicks.label}: ${clicks.value}`);clicks.reset();console.log(`after reset: ${clicks.value}`);De l'extérieur, impossible de modifier count ou label : les deux lignes en erreur sont commentées. La valeur se lit via le getter value, et implements vérifie que reset existe.
Exercice
Utiliser l’éditeur⌘ Entrée ou Ctrl Entrée lance le code, ⇧ ⌘ Entrée vérifie l’exercice.Tab et Maj Tab indentent la ligne ou la sélection ; Échap puis Tab quitte l’éditeur.La vérification compare ce que le programme a affiché à l’exercice ; les espaces en fin de ligne ne comptent pas.Après deux vérifications ratées, la solution s’ouvre. Votre code reste dans ce navigateur.Rendez balance privé, ajoutez une méthode withdraw qui ne fait jamais passer le solde sous zéro, et un getter total. Sortie : « Withdraw 20: true », « Withdraw 40: false », « Mia has 30 ».
Sortie
Ce que le programme affiche apparaîtra ici.