CodeAventura
TypeScript
▸Interfaces y tipos compuestos▸Interfaces: el contrato de los objetos

Misión

Editor
Consola
La consola está vacía. Pulsa EJECUTAR para correr tu código.
11 / 24Interfaces: el contrato de los objetos
Anterior

Interfaces: el contrato de los objetos

Definir la forma con interface

Una interface define qué propiedades y métodos debe tener un objeto:

Si un objeto dice ser Persona, debe tener todas las propiedades definidas en la interface. Ni más, ni menos.

Propiedades opcionales y readonly

Igual que con los tipos inline:

Métodos en interfaces

Las interfaces pueden definir métodos que el objeto debe implementar:

La interface dice: "todo Vehiculo debe tener un método describir que devuelva un string". Cómo lo implementa es cosa del objeto.

Tipado estructural

TypeScript usa tipado estructural — lo que importa es la forma, no el nombre del tipo:

Punto y Coordenada son tipos diferentes pero tienen la misma forma, así que son compatibles. A TypeScript no le importa el nombre — le importa la estructura.

Esto también funciona con funciones

Si el objeto tiene al menos las propiedades que pide la interface, es compatible. Puede tener propiedades extra.

Interface como contrato

Piensa en las interfaces como contratos. No dicen cómo hacer algo, dicen qué debe existir:

Cualquier objeto que tenga play(), pause() y duracion cumple el contrato de Reproducible.

Tu desafío 🚀

  1. Crea una interface Vehiculo con marca (string), modelo (string), año (number) y un método describir() que devuelva string
  2. Crea un objeto que cumpla la interface y asígnale el tipo Vehiculo
  3. Llama a describir() e imprime el resultado

Las interfaces son contratos. Definen qué debe existir sin dictar cómo se implementa. Es la base de la programación orientada a interfaces.