JavaScript
Se puede usar el setter para validar el parámetro al crear un nuevo objeto, como se ve en este código, la entrada de cadena en numberOfStudents omite el setter
class School { constructor(name, level, numberOfStudents) { this._name = name; this._level = level; this._numberOfStudents = numberOfStudents; } get numberOfStudents() { return this._numberOfStudents; } set numberOfStudents(value) { if (isNaN(value)) { console.log('Invalid input: numberOfStudents must be set to a Number.'); } else { return (this._numberOfStudents = value); } } } const primaryOne = new School('Primary One', 'L1', 'ten');huellas dactilares
Escuela { _name: 'Primary One', _level: 'L1', _numberOfStudents: 'ten' }
Por favor ayuda
Está pasando por alto la validación porque está asignando a la propiedad interna _numberOfStudents . El setter solo se ejecuta cuando se asigna a numberOfStudents . Así que cambia el constructor para hacer eso:
class School { constructor(name, level, numberOfStudents) { this._name = name; this._level = level; this.numberOfStudents = numberOfStudents; } get numberOfStudents() { return this._numberOfStudents; } set numberOfStudents(value) { if (isNaN(value)) { console.log('Invalid input: numberOfStudents must be set to a Number.'); } else { this._numberOfStudents = value; } } } const primaryOne = new School('Primary One', 'L1', 'ten');