Menu
Coddy logo textTech

Interfaces genéricas

Parte de la sección Introducción a TypeScript del Journey de JavaScript de Coddy — lección 61 de 73.

Al igual que puedes crear funciones genéricas, también puedes crear interfaces genéricas. Esto te permite definir la forma de un objeto mientras mantienes ciertos tipos de propiedades flexibles y reutilizables.

Aquí se explica cómo crear una interfaz genérica utilizando la misma sintaxis de parámetros de tipo:

interface Container {
  value: T;
  isEmpty: boolean;
}

El <T> después del nombre de la interfaz crea un parámetro de tipo que se puede utilizar en toda la definición de la interfaz. En este ejemplo, la propiedad value tendrá cualquier tipo que especifiques al usar la interfaz, mientras que isEmpty sigue siendo un tipo boolean fijo.

Cuando usas una interfaz genérica, especificas el tipo concreto entre corchetes angulares:

const stringContainer: Container = {
  value: "hello",
  isEmpty: false
};

const numberContainer: Container = {
  value: 42,
  isEmpty: false
};
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

challenge icon

Desafío

Fácil

Crea una interfaz genérica llamada Result que pueda contener datos de cualquier tipo junto con información de éxito.

La interfaz debe tener dos propiedades:

  • success de tipo boolean
  • data de tipo T (el parámetro de tipo genérico)

Crea los siguientes objetos utilizando tu interfaz genérica:

  • stringResult de tipo Result<string> con success: true y data: "Operation completed"
  • numberResult de tipo Result<number> con success: true y data: 42
  • booleanResult de tipo Result<boolean> con success: false y data: false
  • arrayResult de tipo Result<string[]> con success: true y data: ["item1", "item2", "item3"]

Crea una función genérica llamada processResult que:

  • Utilice un parámetro de tipo genérico T
  • Reciba un parámetro result de tipo Result<T>
  • Devuelva un mensaje de tipo string
  • Si success es true, devuelva "Success: [data]"
  • Si success es false, devuelva "Failed: [data]"

Imprime las siguientes salidas:

  • Imprime el resultado de llamar a processResult con stringResult
  • Imprime el resultado de llamar a processResult con numberResult
  • Imprime el resultado de llamar a processResult con booleanResult
  • Imprime el resultado de llamar a processResult con arrayResult
  • Imprime stringResult.data

Hoja de referencia

Las interfaces genéricas te permiten definir la forma de un objeto manteniendo ciertos tipos de propiedades flexibles y reutilizables.

Crea una interfaz genérica utilizando la sintaxis de parámetros de tipo:

interface Container<T> {
  value: T;
  isEmpty: boolean;
}

El <T> después del nombre de la interfaz crea un parámetro de tipo que se puede utilizar en toda la definición de la interfaz.

Utiliza una interfaz genérica especificando el tipo concreto entre corchetes angulares:

const stringContainer: Container<string> = {
  value: "hello",
  isEmpty: false
};

const numberContainer: Container<number> = {
  value: 42,
  isEmpty: false
};

Pruébalo tú mismo

// TODO: Escribe tu código aquí

// Crea la interfaz genérica Result


// Crea los objetos usando la interfaz Result


// Crea la función genérica processResult


// Imprime las salidas requeridas
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Introducción a TypeScript