CodeAventura
TypeScript
▸Interfaces y tipos compuestos▸Interface vs Type: cuándo usar cada uno

Misión

Editor
Consola
La consola está vacía. Pulsa EJECUTAR para correr tu código.
12 / 24Interface vs Type: cuándo usar cada uno
Anterior

Interface vs Type: cuándo usar cada uno

La pregunta del millón

Ya conoces interface y type. Ambos pueden definir la forma de un objeto:

Para objetos, son prácticamente iguales. Entonces, ¿cuál usar?

Lo que SOLO puede hacer interface

Declaration merging

Si defines la misma interface dos veces, TypeScript las fusiona:

Esto es útil para extender tipos de librerías externas. Con type esto daría error.

extends para herencia

Las interfaces usan extends de forma más natural (lo veremos en la próxima lección):

Lo que SOLO puede hacer type

Union types

No puedes crear una union con interface.

Tipos primitivos

Tuplas

Mapped types y utilidades avanzadas

La regla práctica

Esta regla cubre el 95% de los casos. Muchos equipos profesionales la siguen.

En la práctica

Lo que importa: consistencia

Más que la elección técnica, lo importante es ser consistente dentro de un proyecto. Si el equipo usa interface para objetos, úsalo siempre. Si prefiere type para todo, hazlo siempre. La inconsistencia es peor que cualquier elección.

Tu desafío 🚀

  1. Define un modelo con interface para un Usuario (nombre, email)
  2. Define un type para el estado del usuario ("activo" | "inactivo" | "baneado")
  3. Crea una función que reciba un Usuario y un Estado y devuelva un mensaje
  4. Prueba tu código

No hay una respuesta "correcta" universal. Interface para objetos, type para el resto. Sé consistente y sigue adelante.