TypeScriptInterfejsy i klasy
public, private, protected
Modyfikatory dostępu określające, skąd można używać pól i metod klasy.
Przykład
#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('Ania')
wallet.add(50)
wallet.add(20)
console.log(wallet.owner, wallet.total)Wynik
Ania 70
Definicja i zastosowanie
#Pola i metody klas są domyślnie publiczne (public), czyli dostępne wszędzie. private ogranicza dostęp do wnętrza klasy, a protected do klasy i jej klas pochodnych.
Modyfikatory TypeScriptu działają na etapie kompilacji. Po kompilacji do JavaScriptu pole private jest zwykłą właściwością. Jeśli potrzebujesz prawdziwej prywatności w działającym programie, użyj natywnych pól JavaScriptu z #.
Skrót „parameter properties” pozwala zadeklarować i przypisać pole w jednym miejscu: constructor(private name: string) {} tworzy prywatne pole name z wartością argumentu.
Składnia
#Składnia
class Nazwa {
public a: typ
private b: typ
protected c: typ
}Więcej przykładów
#TypeScript
wallet.balance = 1000
// Błąd: Property 'balance' is private and only accessible within class 'Wallet'.Dobre praktyki
#- Do danych, które naprawdę nie powinny być dostępne z zewnątrz, używaj pól
#, które działają też po kompilacji. - Skrót
constructor(private x: T)oszczędza powtarzania deklaracji i przypisania.
Powiązane hasła
#Widzisz błąd albo brakuje przykładu? Napisz do nas.