javascript / intermediate
Snippet
Datenkapselung mittels privater Felder und Zugriffsmethoden in Services
Private Klassenfelder (#) erzwingen in JavaScript eine strikte Kapselung zur Laufzeit. In Kombination mit Gettern und Settern können Services sensible Zustände sicher kapseln und Zustandsänderungen mit Validierungsregeln absichern.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import { Injectable } from '@angular/core';@Injectable({ providedIn: 'root' })export class SessionManager {#authToken: string | null = null;get isAuthenticated(): boolean {return this.#authToken !== null;}set authToken(token: string) {if (!token.trim()) {throw new Error('Token cannot be empty');}this.#authToken = token;}clearSession(): void {this.#authToken = null;}}
angular
Erklärung
1
#authToken: string | null = null;
Deklariert ein echtes privates JavaScript-Feld, auf das von außerhalb der Klasseninstanz nicht zugegriffen werden kann.
2
get isAuthenticated(): boolean {
Bietet schreibgeschützten Zugriff auf abgeleiteten Zustand, ohne das interne Token direkt preiszugeben.
3
set authToken(token: string) {
Fängt Schreiboperationen auf der Eigenschaft ab, um Eingaben zu validieren, bevor der private Zustand aktualisiert wird.