javascript / expert
Snippet
Strukturvalidierung mit Proxy-Traps
Das Proxy-Objekt ermöglicht es, einen Wrapper für ein anderes Objekt zu erstellen, um grundlegende Operationen wie Eigenschaftszuweisungen abzufangen. Durch die Verwendung des 'set'-Traps und der 'Reflect'-API kann eine robuste Laufzeit-Typprüfung implementiert werden.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
const schema = { name: 'string', age: 'number' };const handler = {set(target, prop, value) {if (schema[prop] && typeof value !== schema[prop]) {throw new TypeError(`Invalid type for ${prop}`);}return Reflect.set(...arguments);}};const user = new Proxy({}, handler);user.name = 'Alice'; // Worksuser.age = 'none'; // Throws TypeError
Erklärung
1
set(target, prop, value)
Ein Trap für das Setzen von Eigenschaftswerten auf dem Proxy-Objekt.
2
Reflect.set(...arguments)
Standardmethode, um die Standardaktion der Wertzuweisung an eine Eigenschaft auszuführen.
3
new Proxy({}, handler)
Konstruiert einen Proxy, der den definierten Handler verwendet, um Operationen abzufangen.