0Pricing
Kotlin Academy · Lección

Aliases de tipos

Asigne nombres a tipos complejos

Aliases de tipos es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Academy incluye 4 lecciones en total.

¿Qué es un alias de tipo?

Un alias de tipo asigna un nombre nuevo a un tipo existente. No introduce ningún tipo nuevo: es simplemente una herramienta de legibilidad que se resuelve en tiempo de compilación.

Se declara con la palabra clave typealias.

typealias Name = String

fun main() {
    val n: Name = "Alice"
    println(n)
}

Asignar nombres a tipos de función

Los tipos de función pueden ser muy extensos. Un alias hace que las firmas sean mucho más fáciles de leer.

typealias Handler = (String) -> Unit

fun register(h: Handler) {
    h("event fired")
}

fun main() {
    register { msg -> println(msg) }
}

Asignar nombres a tipos genéricos

Los genéricos profundamente anidados, como Map<String, List<Int>>, se leen mejor con un alias.

typealias ScoreBoard = Map<String, List<Int>>

fun main() {
    val board: ScoreBoard = mapOf("team1" to listOf(10, 20))
    println(board)
}

Los alias son transparentes

Como un alias representa el mismo tipo, los valores son completamente intercambiables. Name y String pueden mezclarse libremente sin ninguna conversión.

typealias Name = String

fun shout(s: String) = s.uppercase()

fun main() {
    val n: Name = "bob"
    println(shout(n))
}

Alias parametrizados

Un alias de tipo puede tener sus propios parámetros de tipo y pasarlos al tipo subyacente.

typealias Pairs<T> = List<Pair<T, T>>

fun main() {
    val data: Pairs<Int> = listOf(1 to 2, 3 to 4)
    println(data)
}

Crear alias de clases anidadas

Una ruta larga a una clase anidada o interna puede recibir un alias corto, lo que reduce el ruido y la complejidad de las importaciones.

class Outer {
    class Inner {
        fun hello() = "inner hello"
    }
}

typealias Shortcut = Outer.Inner

fun main() {
    println(Shortcut().hello())
}

Mejorar la legibilidad del dominio

Los alias comunican intención. typealias UserId = Int documenta que un entero representa la identidad de un usuario, aunque el compilador siga tratándolo como Int.

typealias UserId = Int
typealias Email = String

fun notify(id: UserId, to: Email) {
    println("Notify user " + id + " at " + to)
}

fun main() {
    notify(42, "a@b.com")
}

No añade seguridad de tipos

Tenga en cuenta que, como los alias son transparentes, el compilador no impedirá que pase un UserId donde se espera un alias distinto de Int. Son documentación, no una restricción.

typealias UserId = Int
typealias OrderId = Int

fun process(order: OrderId) = println("order " + order)

fun main() {
    val user: UserId = 5
    process(user) // compiles fine — both are Int
}

Solo en el nivel superior

Los alias de tipo deben declararse en el nivel superior de un archivo. No puede definirlos dentro de funciones o clases. Colóquelos cerca del código relacionado o en un archivo específico.

typealias Callback = () -> Unit

fun run(cb: Callback) = cb()

fun main() {
    run { println("done") }
}

Cuándo usar alias

Recurra a los alias de tipo cuando:

  • Un tipo de función o genérico sea largo y se repita
  • Quiera nombres autoexplicativos para tipos primitivos
  • Necesite una referencia corta para un tipo anidado

Cuando necesite verdadera seguridad de tipos, use una clase de valor.

Alias frente a clase de valor

Un alias es el mismo tipo con un nombre nuevo: no aporta seguridad. Una clase de valor es un tipo distinto que impide mezclar valores. La siguiente lección trata sobre las clases de valor.

Comprobación rápida

Compruebe cuánto ha entendido sobre los alias de tipo.

Repaso

Ha aprendido sobre los alias de tipo:

  • Se declaran con typealias en el nivel superior
  • Son solo un nombre nuevo y completamente transparente
  • Son muy útiles para tipos de función, genéricos y legibilidad
  • No aportan seguridad de tipos

A continuación: clases de valor inline para envolver tipos sin coste adicional.

Preguntas frecuentes

¿La lección «Aliases de tipos» es gratis?

Sí — el texto completo de «Aliases de tipos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Academy, actualiza a CoddyKit PRO. El curso de Kotlin Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Aliases de tipos»?

Asigne nombres a tipos complejos Practicas Kotlin Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Kotlin Academy?

No se requiere experiencia previa. Kotlin Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Aliases de tipos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Kotlin Academy?

Sí. Cada lección de Kotlin Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Aliases de tipos
  2. Clases de valor inline
  3. Casos de uso
  4. Limitaciones
← Volver a Kotlin Academy