javascript / intermediate
Snippet
Dynamische Objekt-Validierung mit Proxies
Das Proxy-Objekt erlaubt es, einen Wrapper für ein anderes Objekt zu erstellen, um grundlegende Operationen wie Eigenschaftszugriff und Zuweisung abzufangen. Dies ist ideal für Schema-Validierung oder Logging, ohne die ursprüngliche Objektlogik zu verändern.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const validator = {set: (target, prop, value) => {if (prop === 'score') {if (!Number.isInteger(value)) throw new TypeError('Score must be an integer');if (value < 0) throw new RangeError('Score cannot be negative');}target[prop] = value;return true;}};const gameState = new Proxy({}, validator);gameState.score = 10; // Valid// gameState.score = -5; // Throws RangeError
nodejs
Erklärung
1
set: (target, prop, value) => { ... }
Ein 'Trap' zum Abfangen von Eigenschaftszuweisungen auf dem Zielobjekt.
2
target[prop] = value;
Wendet den validierten Wert auf das ursprüngliche Objekt an.
3
new Proxy({}, validator);
Erstellt den Proxy mit einem leeren Ziel und den definierten Validierungsregeln.