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
typealiasauf 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.