typescript / intermediate
Snippet
Schutz von Objekteigenschaften mit privaten Bezeichnern und Zugriffsfunktionen
Private ECMAScript-Felder in JavaScript, die mit `#` gekennzeichnet sind, bieten im Vergleich zum TypeScript-Schlüsselwort `private` echte Laufzeit-Privatsphäre und verhindern unbefugten externen Zugriff auch nach der Kompilierung.
snippet.ts
typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class SecureTokenStore {#secretKey: string;constructor(key: string) {this.#secretKey = key;}public validate(candidate: string): boolean {return this.#secretKey === candidate;}}const store = new SecureTokenStore("super-secret-123");console.log(store.validate("wrong-key"));
Erklärung
1
#secretKey: string;
Deklariert ein strikt privates Feld, das von der JS-Engine zur Laufzeit erzwungen wird und außerhalb der Klassendeklaration unzugänglich ist.
2
return this.#secretKey === candidate;
Greift innerhalb einer öffentlichen Klassenmethode sicher auf den internen Geheimschlüssel zu.