0Pricing
Kotlin Academy · Lektion

Typaliase

Benennen Sie komplexe Typen

Typaliase ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Typalias?

Ein Typalias gibt einem vorhandenen Typ einen neuen Namen. Er führt keinen neuen Typ ein, sondern dient ausschließlich der besseren Lesbarkeit und wird zur Kompilierzeit aufgelöst.

Sie deklarieren ihn mit dem Schlüsselwort typealias.

typealias Name = String

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

Funktionstypen benennen

Funktionstypen können umfangreich sein. Ein Alias macht Signaturen wesentlich übersichtlicher.

typealias Handler = (String) -> Unit

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

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

Generische Typen benennen

Tief verschachtelte generische Typen wie Map<String, List<Int>> lassen sich mit einem Alias besser lesen.

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

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

Aliase sind transparent

Da ein Alias denselben Typ bezeichnet, sind Werte vollständig untereinander austauschbar. Name und String können ohne Konvertierung frei gemischt werden.

typealias Name = String

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

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

Parametrisierte Aliase

Ein Typalias kann eigene Typparameter besitzen und diese an den zugrunde liegenden Typ weitergeben.

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

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

Verschachtelte Klassen mit Aliasen versehen

Ein langer Pfad zu einer verschachtelten oder inneren Klasse kann durch einen kurzen Alias ersetzt werden. Das reduziert überladene Imports und unübersichtlichen Code.

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

typealias Shortcut = Outer.Inner

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

Bessere Lesbarkeit der Domäne

Aliase vermitteln Absichten. typealias UserId = Int dokumentiert, dass eine Ganzzahl eine Benutzeridentität darstellt, obwohl der Compiler sie weiterhin als Int behandelt.

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")
}

Keine zusätzliche Typsicherheit

Beachten Sie: Da Aliase transparent sind, hindert der Compiler Sie nicht daran, eine UserId zu übergeben, wenn ein anderer Int-Alias erwartet wird. Aliase dienen der Dokumentation, nicht der Durchsetzung von Regeln.

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
}

Nur auf oberster Ebene

Typaliase müssen auf der obersten Ebene einer Datei deklariert werden. Sie können sie nicht innerhalb von Funktionen oder Klassen definieren. Platzieren Sie sie in der Nähe des zugehörigen Codes oder in einer eigenen Datei.

typealias Callback = () -> Unit

fun run(cb: Callback) = cb()

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

Wann Sie Aliase verwenden sollten

Verwenden Sie Typaliase, wenn:

  • ein Funktionstyp oder generischer Typ lang ist und wiederholt vorkommt
  • Sie selbstdokumentierende Namen für primitive Typen möchten
  • Sie eine kurze Bezeichnung für einen verschachtelten Typ benötigen

Wenn Sie echte Typsicherheit benötigen, verwenden Sie stattdessen eine Value-Klasse.

Alias oder Value-Klasse

Ein Alias ist derselbe Typ mit einem neuen Namen — ohne zusätzliche Sicherheit. Eine Value-Klasse ist ein eigenständiger Typ, der verhindert, dass Werte verwechselt werden. Die nächste Lektion behandelt Value-Klassen.

Kurzer Test

Testen Sie Ihr Verständnis von Typaliasen.

Zusammenfassung

Sie haben Typaliase kennengelernt:

  • Sie werden mit typealias auf der obersten Ebene deklariert
  • Sie sind lediglich ein neuer, vollständig transparenter Name
  • Sie eignen sich hervorragend für Funktionstypen, generische Typen und bessere Lesbarkeit
  • Sie bieten keine zusätzliche Typsicherheit

Als Nächstes: Inline-Value-Klassen für Wrapping ohne zusätzlichen Overhead.

Häufig gestellte Fragen

Ist die Lektion „Typaliase“ kostenlos?

Ja — der vollständige Text von „Typaliase“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Typaliase“?

Benennen Sie komplexe Typen Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kotlin Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Typaliase“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Typaliase
  2. Inline-Value-Klassen
  3. Anwendungsfälle
  4. Einschränkungen
← Zurück zu Kotlin Academy