Oii Vitor, tudo bem?
Obrigado por compartilhar sua solução no fórum, ela vai ajudar outros alunos que passarem por esse exercício!
Seu código vai além do proposto: enquanto o exercício pede apenas a verificação da idade com um valor fixo, você criou uma entrada interativa com readline e ainda adicionou validação de entrada. Isso mostra iniciativa e cuidado com casos de borda.
Um ponto que vale observar: Number.isInteger não vai capturar todos os casos inválidos da forma que você espera. Por exemplo:
Number.isInteger(Number("abc")) // false ✅ — detecta corretamente
Number.isInteger(Number("1.5")) // false ✅ — detecta corretamente
Number.isInteger(Number("")) // false... espera, não.
Number.isInteger(Number("")) // Number("") === 0 → true ❌
Number("") retorna 0, então uma entrada vazia passaria pela validação como se fosse a idade zero. Uma alternativa mais robusta é usar isNaN antes:
if (isNaN(idade) || !Number.isInteger(idade) || idade < 0) {
console.log("Insira uma idade válida");
}
Vale também pensar: faz sentido aceitar 0 como idade válida? Ou o limite inferior deveria ser > 0? Fica a reflexão!
Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.
Bons estudos!
Sucesso ✨