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 estructura de un objeto mientras mantienes flexibles y reutilizables los tipos de ciertas propiedades.

Así es como se crea una interfaz genérica usando la misma sintaxis de parámetros de tipo:

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

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

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
};
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
  • Acepte un parámetro result de tipo Result<T>
  • Devuelva un mensaje de texto
  • 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

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

Practica por tu cuenta: Compilador de JavaScript online