public, private, protected
Des modificateurs d’accès qui déterminent d’où les champs et méthodes d’une classe peuvent être utilisés.
Exemple
#class Wallet {
private balance = 0
constructor(public readonly owner: string) {}
add(gems: number): void {
this.balance += gems
}
get total(): number {
return this.balance
}
}
const wallet = new Wallet('Léa')
wallet.add(50)
wallet.add(20)
console.log(wallet.owner, wallet.total)Léa 70
Définition et utilisation
#Les champs et méthodes des classes sont publics (public) par défaut, c’est-à-dire accessibles de partout. private limite l’accès à l’intérieur de la classe, et protected à la classe et à ses classes dérivées.
Les modificateurs de TypeScript agissent à la compilation. Après compilation vers JavaScript, un champ private est une propriété ordinaire. Si vous avez besoin d’une véritable confidentialité dans le programme en cours d’exécution, utilisez les champs natifs # de JavaScript.
Le raccourci « parameter properties » permet de déclarer et d’affecter un champ en un seul endroit : constructor(private name: string) {} crée un champ privé name avec la valeur de l’argument.
Syntaxe
#class Name {
public a: type
private b: type
protected c: type
}Plus d’exemples
#wallet.balance = 1000
// Erreur : Property 'balance' is private and only accessible within class 'Wallet'.Bonnes pratiques
#- Pour des données qui ne devraient vraiment pas être accessibles depuis l’extérieur, utilisez les champs
#, qui fonctionnent aussi après compilation. - Le raccourci
constructor(private x: T)évite de répéter la déclaration et l’affectation.
Entrées associées
#- implementsUne déclaration indiquant qu’une classe respecte le contrat décrit par une interface.
- abstract classUne classe de base que vous ne pouvez pas créer directement, avec des méthodes à compléter par ses descendants.
- readonlyUn modificateur qui bloque la modification d’un champ après la création de l’objet.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.