javascript / intermediate
Snippet
Dynamische Datenvalidierung mit Proxies
Das Proxy-Objekt ermöglicht es, einen Wrapper für ein anderes Objekt zu erstellen, der grundlegende Operationen wie Eigenschaftssuche, Zuweisung und Aufzählung abfangen und neu definieren kann. In diesem Beispiel verwenden wir den 'set'-Trap, um eine Echtzeit-Validierungslogik für die Eigenschaften eines Objekts zu implementieren.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const userSchema = {set(target, prop, value) {if (prop === 'age') {if (typeof value !== 'number' || value < 0) {throw new Error('Age must be a positive number');}}target[prop] = value;return true;}};const user = new Proxy({}, userSchema);user.age = 25; // Works// user.age = -5; // Throws Error
Erklärung
1
const userSchema = { set(target, prop, value) { ... } }
Definiert ein Handler-Objekt mit einem 'set'-Trap, der Eigenschaftszuweisungen abfängt.
2
if (prop === 'age') { ... }
Prüft, ob die geänderte Eigenschaft 'age' ist, um spezifische Validierungsregeln anzuwenden.
3
new Proxy({}, userSchema)
Erstellt einen neuen Proxy, der die Schema-Logik auf ein leeres Zielobjekt anwendet.