Estoy tratando de aplicar validaciones personalizadas en cada elemento del objeto JS según el nombre del elemento. por ejemplo, age_int debe ser de tipo int; de lo contrario, debería arrojar un error y si intenta editar con un tipo de datos incorrecto, debería arrojar un error.
const obj { age_int: 2, name string: "adam", job: null, } const validatingobject = typecheck(obj) validatingobject.age_int = 2.25 // throws error validatingobject.age_int = 2 validatingobject.job = "fireman" validatingobject.address_string = 20 // throws errorNo es el código completo, debe completar según sus necesidades:
function typecheck(obj){ for (let key in obj) { if (key.includes("int") && Number.isInteger(obj[key])){ console.log(key, obj[key], "is int"); } // you need to complete by your needs } }Otra opción:
const typecheck = Object.freeze( // Create new objecct with NO prototype: null Object.create(null, { // 'a_int' set/get a_int: { get() { // Check: Symbol existence return this[Symbol.for('a_int')] }, set(val) { if(!Number.isInteger(val)) throw new DOMException("not int") this[Symbol.for('a_int')] = val; } } }) );