Hoy vamos a hablar de un tema que suena complicado pero es súper útil y elegante:


🧠 ¿Qué es una validación ternaria?

La validación ternaria (o operador ternario) es como un "if" en una sola línea.

📚 Su estructura es:

condición ? valorSiEsVerdadero : valorSiEsFalso;

Es como decir:

“Si esto es verdadero, haz esto; si no, haz lo otro” — ¡pero todo en una línea! 🎩


🧪 Ejemplo básico en TypeScript

const edad = 20;
const mensaje = edad >= 18 ? 'Eres mayor de edad 🧔' : 'Eres menor de edad 👶';
console.log(mensaje); // Eres mayor de edad 🧔

👉 Lo mismo con if sería:

let mensaje = '';
if (edad >= 18) {
  mensaje = 'Eres mayor de edad 🧔';
} else {
  mensaje = 'Eres menor de edad 👶';
}

🧼 ¿Ves la diferencia? El operador ternario es más limpio, directo y legible cuando son decisiones cortas.


🧩 ¿Y en Angular HTML con *ngIf o atributos?

También puedes usarlo directamente en la plantilla HTML, por ejemplo:

[style.color]="isError ? 'red' : 'green'">
  {{ isError ? '¡Ups, error!' : 'Todo bien 👍' }}

🧪 Otro ejemplo: mostrar íconos según estado

[icon]="isOnline ? 'wifi' : 'wifi-slash'">

Esto cambia el ícono dependiendo si isOnline es true o false.


⚠️ Cuándo NO usar ternarias

Evita ternarias cuando la lógica se complica mucho o hay varios niveles anidados 😵‍💫:

❌ Mal uso:

const mensaje = a > 10 
  ? b > 5 
    ? 'Alto y bien' 
    : 'Alto pero mal' 
  : 'Bajo';

En ese caso, es mejor usar if/else para mantenerlo claro.


✅ Cuándo SÍ usar ternarias

  • Mostrar mensajes cortos en función de una condición
  • Cambiar estilos dinámicos
  • Elegir entre dos valores
  • Dentro de interpolaciones en Angular

🧭 En resumen:

Parte Descripción
condición Se evalúa como true o false
? valorSiTrue Se ejecuta si la condición es verdadera
: valorSiFalse Se ejecuta si es falsa

🚀 Ejercicio Rápido

¿Qué muestra este código?

const nivel = 7;
const resultado = nivel > 5 ? '✅ Aprobado' : '❌ Reprobado';
console.log(resultado);

🧠 Piensa unos segundos...

¡Correcto! Muestra: ✅ Aprobado