Estoy intentando usar el inquirer para recopilar la entrada del usuario, que se convierte en un objeto, luego se pasa a un constructor de clase. Todo parece funcionar de la manera en que quiero que acepte la matriz resultante de objetos después de que se pasan, aunque las clases salen de una manera que me confunde.
cuando consuelo. registro la matriz que contiene los objetos que devuelven mis clases, esto es lo que sale:
[ Manager { name: 'bob', id: '24', email: 'bob.com', officeNumber: '1' }, Engineer { name: 'jack', id: '347', email: 'jack.com', github: 'jackolantern' }, Intern { name: 'sally', id: '987', email: 'sally.com', school: 'UCF' } ]Aquí hay un ejemplo de una de las clases:
class Manager extends Employee { constructor (employeeObj) { super (employeeObj); this.name = employeeObj.name; this.id = employeeObj.id; this.email = employeeObj.email; this.officeNumber = employeeObj.officeNumber; } getOfficeNumber () { return this.officeNumber; } getRoll () { return "Manager"; } } module.exports = Manager;y así es como se pasan los objetos a las clases:
const prompts = async () => { let employeeObj = {}; const employee = await inquirer.prompt(addEmployee); switch(employee.addEmployee){ case 'Manager': employeeObj = await managerQuestions(); const manager = new Manager(employeeObj); output.push(manager); if(employeeObj.addAnother){ return prompts(); } else { complete(); } break; case 'Engineer': employeeObj = await engineerQuestions(); const engineer = new Engineer(employeeObj) output.push(engineer) if(employeeObj.addAnother){ return prompts(); } else { complete(); } break; case 'Intern': employeeObj = await internQuestions(); const intern = new Intern(employeeObj) output.push(intern) if(employeeObj.addAnother){ return prompts(); } else { complete(); } break; default: console.log('you have reached the default switch statement. thant should not happen. Please try again!'); } }lo que parece que no puedo entender es por qué el "rollo" para cada objeto (Gerente, Ingeniero, Pasante) se coloca fuera del objeto correspondiente y no dentro de él. Pude agregar this.roll = "manager" dentro del constructor y, como era de esperar, agregó una propiedad llamada roll con un valor de "manager" que funcionará bien para lo que necesito hacer, pero ¿cómo obtengo deshacerse de ese gerente, ingeniero y pasante que aparece antes de cada objeto en la matriz de salida, o se puede mover dentro del objeto?
gracias por tomarse el tiempo para leer todo esto.