Diferencia entre una Interfaz y una Clase en TypeScript

Posted on October 24, 2025
Profile
Gastón Gaitan
October 24, 2025 · 1 week, 6 days ago
Diferencia entre una Interfaz y una Clase en TypeScript

Diferencia entre una Interfaz y una Clase en TypeScript

En TypeScript, tanto las interfaces como las clases se utilizan para definir la estructura de los objetos, pero tienen propósitos muy distintos. Comprender esta diferencia es esencial para escribir código mantenible, escalable y tipado correctamente.

¿Qué es una Interfaz?

Una interfaz en TypeScript es una forma de definir el “contrato” que un objeto debe cumplir. Es decir, describe la forma que debe tener un objeto: sus propiedades, tipos y métodos, pero sin incluir implementación.

// Definición de una interfaz interface Usuario { nombre: string; edad: number; saludar(): void; } // Uso de la interfaz const user: Usuario = { nombre: 'Gaston', edad: 28, saludar() { console.log('Hola!'); } };

💡 En resumen: Las interfaces solo definen estructura, no comportamiento. Son ideales para contratos, modelos o tipos de datos que describen la forma de los objetos.

¿Qué es una Clase?

Una clase define la estructura y también la implementación. Puede tener propiedades, métodos, modificadores de acceso (public, private, protected) y herencia. En tiempo de ejecución, las clases existen en el código JavaScript compilado, mientras que las interfaces no.

// Definición de una clase class Usuario { constructor( public nombre: string, public edad: number ) {} saludar(): void { console.log(`Hola, soy ${this.nombre}`); } } const user = new Usuario('Gaston', 28); user.saludar();

💡 En resumen: Las clases definen tanto la estructura como el comportamiento de los objetos. Además, generan código JavaScript real al compilar.

Comparación Directa

🧩 Interfaz
  • Define la forma del objeto
  • No tiene implementación
  • Existe solo en tiempo de compilación
  • Usada para contratos y tipado
🏗️ Clase
  • Define forma y comportamiento
  • Tiene implementación
  • Existe en tiempo de ejecución
  • Usada para crear objetos reales

Ejemplo visual

Ejemplo visual de interfaz y clase

Una representación visual del concepto de interfaz y clase en TypeScript.

Uso Combinado

En muchos proyectos, es común usar una interfaz para definir la estructura y una clase que la implemente. Esto permite mantener tipado fuerte y separar el contrato de la implementación.

// Interfaz interface Animal { nombre: string; hacerSonido(): void; } // Clase que implementa la interfaz class Perro implements Animal { constructor(public nombre: string) {} hacerSonido(): void { console.log('Guau guau!'); } } const miPerro = new Perro('Toby'); miPerro.hacerSonido();

✅ Beneficio: La interfaz asegura que la clase cumpla con una estructura, mientras que la clase define cómo funciona realmente ese comportamiento.

Conclusión

Las interfaces son herramientas de diseño, mientras que las clases son herramientas de implementación. En TypeScript, entender esta diferencia te permite aprovechar el tipado fuerte sin perder flexibilidad a la hora de construir aplicaciones escalables y bien organizadas.