Principio de la POO que oculta los detalles internos de una clase y expone solo una interfaz pública.
Protege el estado interno de cambios accidentales o no deseados. Usa modificadores de acceso como private y public.
// Encapsulación en TypeScript class CuentaBancaria { private saldo: number = 0; // ❌ No accesible desde fuera private historial: string[] = []; // ✅ Interfaz pública public depositar(cantidad: number): void { if (cantidad <= 0) throw new Error('Cantidad inválida'); this.saldo += cantidad; this.registrar(`Depósito: ${cantidad}`); } public retirar(cantidad: number): void { if (cantidad > this.saldo) throw new Error('Saldo insuficiente'); this.saldo -= cantidad; this.registrar(`Retiro: ${cantidad}`); } public getSaldo(): number { return this.saldo; // Solo lectura } private registrar(operacion: string): void { this.historial.push(`${new Date().toISOString()}: ${operacion}`); } } const cuenta = new CuentaBancaria(); cuenta.depositar(100); // cuenta.saldo = 1000; // ❌ Error: propiedad privada