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.

Sur cette page

Exemple

#
TypeScript
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)
Résultat
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

#
Syntaxe
class Name {
  public a: type
  private b: type
  protected c: type
}

Plus d’exemples

#
Tentative d’accès à un champ privé
TypeScript
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

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.