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
};Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Desafío
FácilCrea 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:
successde tipobooleandatade tipoT(el parámetro de tipo genérico)
Crea los siguientes objetos utilizando tu interfaz genérica:
stringResultde tipoResult<string>consuccess: trueydata: "Operation completed"numberResultde tipoResult<number>consuccess: trueydata: 42booleanResultde tipoResult<boolean>consuccess: falseydata: falsearrayResultde tipoResult<string[]>consuccess: trueydata: ["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
resultde tipoResult<T> - Devuelva un mensaje de tipo string
- Si
successestrue, devuelva"Success: [data]" - Si
successesfalse, devuelva"Failed: [data]"
Imprime las siguientes salidas:
- Imprime el resultado de llamar a
processResultconstringResult - Imprime el resultado de llamar a
processResultconnumberResult - Imprime el resultado de llamar a
processResultconbooleanResult - Imprime el resultado de llamar a
processResultconarrayResult - 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 requeridasEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Introducción a TypeScript
1Primeros pasos con TS
¿Qué es TypeScript?¿Por qué usar TypeScript?Tu primer código en TypeScriptProceso de compilación y erroresResumen: Introducción a TS4Trabajando con funciones
Tipado de parámetros y valores de retornoTipado de funciones de flechaEl tipo de retorno 'void'Parámetros opcionales con '?'Valores de parámetros por defectoTipado de parámetros restDefinición de tipos de funcionesRepaso: Construcción de funciones tipadas2Tipos principales
Tipos básicos: str, num, booleanEl tipo 'any': Vía de escapeEl tipo 'unknown'Trabajando con 'null' y 'undef'Inferencia de tipos en acciónAnotaciones de tipo explícitasResumen: Práctica de tipos principales5Tipos: Alias, Uniones e Intersecciones
Alias de tipos para primitivosTipos de unión ('|')Trabajando con tipos de uniónTipos literalesTipos de intersección ('&')Combinando alias de tiposRepaso: Combinaciones de tipos avanzadas3Estructura de datos: Arrays y Tuplas
Arrays tipadosModificador 'readonly' para Arrays¿Qué es una Tupla?Declaración y acceso a TuplasDesestructuración de TuplasTuplas ReadonlyArrays tipados multidimensionalesOperador Spread con ArraysResumen: Arrays y Tuplas6Tipado de Objetos e Interfaces
Anotaciones de tipo de objeto en líneaAlias de tipo para objetosIntroducción a las interfacesInterfaces vs. Alias de tipoPropiedades opcionales y ReadonlyExtensión de interfaces y tiposAgregar métodos a interfacesRepaso: Definición de estructuras de objetos9Genéricos: Un primer vistazo
El problema que resuelven los genéricosCreación de una función de identidad genéricaUso de una función genéricaArrays genéricosInterfaces genéricasRepaso: Práctica de funciones genéricas