TypeScript

TypeScript

Tutorial TypeScript: Interfaces

TypeScript interfaces: definición y uso. Domina la definición y uso de interfaces en TypeScript con ejemplos prácticos y detallados.

Las interfaces en TypeScript son una herramienta fundamental para definir la estructura y el contrato que deben seguir los objetos en un sistema de tipos estático. Una interfaz define un conjunto de propiedades y métodos que un objeto debe tener para cumplir con esa interfaz. En otras palabras, una interfaz establece un contrato que un objeto debe cumplir para considerarse compatible con esa interfaz.

Una interfaz se define utilizando la palabra clave interface seguida del nombre de la interfaz y las propiedades y métodos que debe tener. Por ejemplo, si se quiere definir una interfaz para representar un objeto Persona con propiedades como nombre, edad y dirección, puede hacerse de la siguiente manera:

interface Persona {
  nombre: string;
  edad: number;
  direccion: string;
}

En este ejemplo, la interfaz Persona define tres propiedades: nombre, edad y direccion. La propiedad nombre debe ser de tipo string, la propiedad edad debe ser de tipo number y la propiedad direccion debe ser de tipo string. Ahora, puede utilizarse esta interfaz para crear objetos que cumplan con esta estructura:

let persona1: Persona = {
  nombre: "Juan",
  edad: 30,
  direccion: "Calle Principal 123"
};

Aquí se ha creado un objeto persona1 que cumple con la interfaz Persona porque tiene las propiedades nombre, edad y direccion con los tipos correctos. Si se intentara asignar un objeto que no cumpla con la interfaz, TypeScript mostraría un error en tiempo de compilación.

Las interfaces también pueden incluir métodos no implementados, indicando sus parámetros de entrada y tipo de salida. Por ejemplo, si se quiere agregar un método saludar a la interfaz Persona, puede lograrse de la siguiente manera:

interface Persona {
  nombre: string;
  edad: number;
  direccion: string;
  saludar: () => void;
}

Aquí se ha agregado el método saludar que no recibe ningún argumento y no devuelve ningún valor (void). Ahora, al crear un objeto que cumple con la interfaz Persona, también debe incluir una implementación para el método saludar:

let persona1: Persona = {
  nombre: "Juan",
  edad: 30,
  direccion: "Calle Principal 123",
  saludar: () => {
    console.log("¡Hola! Mi nombre es " + persona1.nombre);
  }
};

En este ejemplo, se implementa el método saludar en el objeto persona1. Al llamar a persona1.saludar(), imprimirá "¡Hola! Mi nombre es Juan" en la consola.

Las interfaces también pueden ser extendidas para crear nuevas interfaces que heredan las propiedades y métodos de otras interfaces. Esto es útil cuando se quiere definir interfaces más específicas basadas en una interfaz base. Por ejemplo:

interface Empleado extends Persona {
  id: number;
  cargo: string;
}

Aquí, se ha creado la interfaz Empleado que extiende la interfaz Persona. La interfaz Empleado tiene las mismas propiedades y métodos que la interfaz Persona, pero también agrega dos nuevas propiedades: id de tipo number y cargo de tipo string. De esta manera, un objeto Empleado debe tener todas las propiedades y métodos de la interfaz Persona, además de las propiedades adicionales definidas en la interfaz Empleado.

En resumen, las interfaces en TypeScript son una forma poderosa de definir la estructura y el contrato que deben seguir los objetos en un sistema de tipos estático. Permiten establecer un conjunto de propiedades y métodos que los objetos deben tener para cumplir con una interfaz específica. Esto proporciona una verificación estática y ayuda a prevenir errores comunes al trabajar con objetos en TypeScript.

Certifícate en TypeScript con CertiDevs PLUS

Ejercicios de esta lección Interfaces

Evalúa tus conocimientos de esta lección Interfaces con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Funciones

TypeScript
Test

Funciones de primera clase

TypeScript
Puzzle

Tipos de utilidad

TypeScript
Puzzle

Clases

TypeScript
Test

OOP y CRUD en TypeScript

TypeScript
Proyecto

Tipos literales

TypeScript
Test

Namespaces

TypeScript
Test

Módulos

TypeScript
Test

Funciones TypeScript

TypeScript
Código

Encapsulación

TypeScript
Puzzle

Interfaces

TypeScript
Puzzle

Funciones puras

TypeScript
Puzzle

Variables y constantes

TypeScript
Código

Funciones flecha

TypeScript
Puzzle

Funciones puras

TypeScript
Test

Control de flujo

TypeScript
Código

Resolución de módulos

TypeScript
Test

Control de flujo

TypeScript
Puzzle

Polimorfismo

TypeScript
Test

Operadores

TypeScript
Test

Funciones flecha

TypeScript
Test

Herencia

TypeScript
Puzzle

Clases y objetos

TypeScript
Código

Clases

TypeScript
Puzzle

Operadores

TypeScript
Puzzle

Encapsulación

TypeScript
Test

Herencia

TypeScript
Test

Funciones

TypeScript
Puzzle

Tipos de unión e intersección

TypeScript
Test

Funciones de alto orden

TypeScript
Puzzle

Inmutabilidad

TypeScript
Puzzle

Interfaces

TypeScript
Test

Funciones de alto orden

TypeScript
Test

Tipos de unión e intersección

TypeScript
Puzzle

Tipos genéricos

TypeScript
Test

Control de flujo

TypeScript
Test

Polimorfismo

TypeScript
Puzzle

Interfaces

TypeScript
Código

Tipos literales

TypeScript
Puzzle

Tipos de utilidad

TypeScript
Test

Tipos genéricos

TypeScript
Puzzle

Inmutabilidad

TypeScript
Test

Herencia de clases

TypeScript
Código

Variables y constantes

TypeScript
Test

Variables y constantes

TypeScript
Puzzle

Funciones de primera clase

TypeScript
Test

Introducción a TypeScript

TypeScript
Test

Todas las lecciones de TypeScript

Accede a todas las lecciones de TypeScript y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Certificados de superación de TypeScript

Supera todos los ejercicios de programación del curso de TypeScript y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender qué son las interfaces y su importancia en TypeScript.
  2. Aprender a definir una interfaz utilizando la palabra clave interface.
  3. Conocer cómo especificar las propiedades y métodos requeridos en una interfaz.
  4. Saber cómo utilizar una interfaz para crear objetos que cumplan con su estructura.
  5. Familiarizarse con el concepto de implementación de métodos en interfaces y cómo utilizarlos en objetos.
  6. Entender la herencia de interfaces y cómo extender una interfaz para crear nuevas interfaces más específicas.