JavaScript Proxy оборачивает объект и перехватывает его операции. Для валидации входных данных мы используем set trap — обработчик, который запускается каждый раз при присваивании значения свойству.
new Proxy({}, handler), где первый аргумент — это целевой объектset(target, prop, value) внутри обработчикаtrue, чтобы подтвердить, что присваивание прошло успешноconst validator = new Proxy({}, {
set(target, prop, value) {
if (prop === "age" && typeof value !== "number") {
throw new TypeError("Age must be a number");
}
target[prop] = value;
return true;
}
});
validator.age = 25; // ✅ работает отлично
validator.age = "old"; // ❌ выбрасывает TypeError
set trap получает три аргумента: target (исходный объект), prop (имя свойства) и value (присваиваемое значение)true обязателен — его отсутствие вызывает TypeError в строгом режимеset trap, расширяя условные проверкиProxies предоставляют ненавязчивый способ обеспечить целостность данных. В отличие от ручных проверок перед каждым присваиванием, Proxy автоматически перехватывает каждую операцию записи, что идеально подходит для создания переиспользуемых слоёв валидации или утилит для принудительного применения схем.
Ловушка set в обработчике Proxy получает ровно три параметра: target, имя свойства и присваиваемое значение.
Новый — ещё не проверен сообществом
Вы