Chuck's Academy

TypeScript Básico

Interfaces y Tipos en TypeScript

En TypeScript, las interfaces y los tipos son herramientas poderosas que permiten definir estructuras de datos claras y precisas. Estas estructuras ayudan a que el código sea más mantenible y fácil de entender, ya que definen de forma explícita qué tipos de valores pueden esperar las funciones, clases y otros elementos.

Definición de Interfaces

Una interfaz en TypeScript es un contrato que define la forma que debe tener un objeto. No especifica implementaciones, solo la estructura. Veamos un ejemplo básico:

typescript
"Aquí definimos una interfaz llamada User que describe un objeto con tres propiedades: id de tipo number, username de tipo string, y email que es opcional. Luego creamos un objeto user que sigue esta interfaz."

Extendiendo Interfaces

TypeScript permite extender interfaces, lo que significa que una interfaz puede heredar las propiedades de otra y añadir las suyas propias. Esto es útil cuando quieres crear estructuras más complejas basadas en otras más simples.

typescript
"En este ejemplo, la interfaz Employee extiende la interfaz Person, lo que significa que Employee hereda las propiedades firstName y lastName, y añade una propiedad nueva llamada jobTitle. Creamos un objeto employee que sigue esta estructura."

Definición de Tipos (Type)

Además de las interfaces, TypeScript permite definir tipos personalizados usando la palabra clave type. Los tipos pueden ser usados para crear estructuras más flexibles o alias para tipos complejos.

typescript
"En este ejemplo, definimos un tipo llamado Point que describe un objeto con dos propiedades numéricas, x e y. Luego creamos un objeto llamado point que sigue esta estructura."

Alias de Tipos

Los alias de tipos son útiles para simplificar tipos complejos o repetitivos, haciendo que el código sea más claro y fácil de leer.

typescript
"Aquí, creamos un alias llamado StringOrNumber que puede ser un string o un número. Luego lo usamos para declarar una variable llamada id, que puede tomar tanto valores numéricos como de texto."

Interfaces vs Tipos

Aunque las interfaces y los tipos son similares en muchos aspectos, existen algunas diferencias clave:

  • Interfaces: Son más apropiadas para describir objetos y pueden ser extendidas.
  • Tipos: Son más flexibles, ya que pueden describir estructuras más complejas, como tipos de unión y alias de tipos.

Esta imagen muestra un comparación entre interface y tiposEsta imagen muestra un comparación entre interface y tipos

En la mayoría de los casos, puedes elegir cuál utilizar en función de tus necesidades. TypeScript permite mezclar interfaces y tipos en un mismo proyecto.

Conclusión

En este capítulo, hemos aprendido a usar interfaces y tipos en TypeScript para definir estructuras de datos más claras y precisas. Las interfaces son ideales para describir la forma de los objetos, mientras que los tipos nos dan flexibilidad adicional con alias y tipos de unión.


Pregúntame lo que sea