Solución

@estouchedisindo·17/5/2026TypeScript
solution.tsTypeScript
// Define aquí el tipo ApiResponse como union discriminada
// Una variante representa respuesta exitosa, la otra un error
type Sucess = {
  kind: "success";
  data: "string"
}

type Error = {
  kind: "error";
  message: "string"
}

type ApiResponse = Sucess | Error;

export function formatApiResponse(response: ApiResponse): string {
  // Procesa la respuesta según su variante y retorna el mensaje formateado
  // técnica: TYPE NARROWING - Reducción de tipos
  // Reduce un tipo de unión a un tipo más específico dentro de un ámbito
  // usando la propiedad 'kind' en este caso
  // Nuestro guardian de tipo (Type Guard) usa la técnica de Reducción de tipos
  // para estrechar el tipo (Type Narrowing)
  switch(response.kind) {
    case "success": 
    return `OK: ${response.data}`
    break
    case "error": 
    return `ERR: ${response.message}`
    break
  }
  
  return "";
}
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.