Код IT Загрузка примера кода…

JavaScript main.js
const validator = {
    set(obj, prop, value) {
        if (prop === "age") {
            if (typeof value !== "number" || value < 0 || value > 150) {
                throw new RangeError("Возраст должен быть от 0 до 150");
            }
        }
        if (prop === "email") {
            const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
            if (!emailRegex.test(value)) {
                throw new TypeError("Некорректный формат email");
            }
        }
        return Reflect.set(obj, prop, value);
    }
};

const user = new Proxy({}, validator);
user.age = 25;           // OK
user.email = "test@example.com"; // OK
// user.age = 200;       // RangeError
// user.email = "invalid"; // TypeError
const validator = {
    set(obj, prop, value) {
        if (prop === "age") {
            if (typeof value !== "number" || value < 0 || value > 150) {
                throw new RangeError("Возраст должен быть от 0 до 150");
            }
        }
        if (prop === "email") {
            const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
            if (!emailRegex.test(value)) {
                throw new TypeError("Некорректный формат email");
            }
        }
        return Reflect.set(obj, prop, value);
    }
};

const user = new Proxy({}, validator);
user.age = 25;           // OK
user.email = "test@example.com"; // OK
// user.age = 200;       // RangeError
// user.email = "invalid"; // TypeError