Enums heterogéneos
Parte de la sección Introducción a TypeScript del Journey de JavaScript de Coddy — lección 55 de 73.
TypeScript también admite enums heterogéneos: enums que contienen una mezcla de miembros tanto de cadena como numéricos dentro de la misma declaración.
Aquí tienes cómo puedes crear un enum heterogéneo:
enum MixedEnum {
No = 0,
Yes = "YES",
Maybe = 1
}En este ejemplo, No y Maybe son miembros numéricos, mientras que Yes es un miembro de cadena. TypeScript permite esta flexibilidad, aunque es importante notar que los enums heterogéneos rara vez se utilizan en la práctica.
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 un enum heterogéneo llamado ResponseCode que mezcle valores numéricos y de cadena:
Successinicializado en200Errorinicializado en"ERROR"NotFoundinicializado en404Timeoutinicializado en"TIMEOUT"
Crea una función llamada handleResponse que reciba un parámetro:
codede tipoResponseCode
La función debe:
- Verificar el código de respuesta e imprimir diferentes mensajes basados en el valor
- Si el código es
ResponseCode.Success, imprimir"Request successful" - Si el código es
ResponseCode.Error, imprimir"General error occurred" - Si el código es
ResponseCode.NotFound, imprimir"Resource not found" - Si el código es
ResponseCode.Timeout, imprimir"Request timed out" - Tener un tipo de retorno
void
Crea cuatro variables para demostrar los valores del enum:
successCodede tipoResponseCodey asígnaleResponseCode.SuccesserrorCodede tipoResponseCodey asígnaleResponseCode.ErrornotFoundCodede tipoResponseCodey asígnaleResponseCode.NotFoundtimeoutCodede tipoResponseCodey asígnaleResponseCode.Timeout
Imprime las siguientes salidas:
- Imprime el valor de
successCode - Imprime el valor de
errorCode - Imprime el valor de
notFoundCode - Imprime el valor de
timeoutCode - Llama a
handleResponseconResponseCode.Success - Llama a
handleResponseconerrorCode - Llama a
handleResponsecon el valor numérico404
Hoja de referencia
TypeScript admite enumeraciones heterogéneas que contienen una mezcla de miembros tanto de cadena como numéricos dentro de la misma declaración:
enum MixedEnum {
No = 0,
Yes = "YES",
Maybe = 1
}En las enumeraciones heterogéneas, puedes mezclar valores numéricos y de cadena. Aunque TypeScript permite esta flexibilidad, las enumeraciones heterogéneas rara vez se utilizan en la práctica.
Pruébalo tú mismo
// TODO: Escribe tu código aquí
// Crear el enum ResponseCode
// Crear la función handleResponse
// Crear las variables de demostración
// Imprimir 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 Tuplas