// Реализовать функцию навешивающую валидацию на объект
 
/**
 * @param obj [Object]
 * @param rules [Object | function]
 * @param rules.validator [function]
 * @param rules.message [string}
 */
 
function createValidatedProxy(obj, rules) {
	// Ваш код здесь
}
 
const person = {};
 
const personWithValidation = createValidatedProxy(person, {
    name: {
        validator: (value) => typeof value === "string",
        message: "Имя должно быть строкой",
    },
    age: (value) => value >= 18,
});
 
console.log(123);
 
personWithValidation.age = 10; // Ничего не делает
console.log(personWithValidation);
 
personWithValidation.age = 20; // Успешно устанавливает возвраст
console.log(personWithValidation);
 
personWithValidation.name = 123; // Выводит в консоль ошибку из message
console.log(personWithValidation);
 
personWithValidation.name = "Foo bar"; // Успешно устанвливает имя
console.log(personWithValidation);

Назад