Fazendo a tratativa da idade, fiquei em dúvida se seria necessário usar if(Number.isNaN(idade)). O if(!Number.isInteger(idade)) já verifica se é um número inteiro válido, então por que explicitamente verificar se o que chegou é um número?
import { createInterface } from "readline";
const rl = createInterface({
input: process.stdin,
output: process.stdout,
});
const categorizarIdade = (idade) => {
if (idade < 12) return "Infantil";
if (idade <= 18) return "Juvenil";
return "Adulto";
};
rl.question("Boas vindas! Quantos anos você tem?\n> ", (input) => {
const idade = Number(input);
if (!Number.isInteger(idade) || idade < 0) {
console.log("Insira uma idade válida");
rl.close();
return;
}
console.log(categorizarIdade(idade));
rl.close();
});