Maintaining crisp code with type aliases — заметка о ключевом слове typealias, которое можно использовать для назначения произвольных имен различным типам данных.
Представим, что у нас есть список юзеров List<User>. Использовать его в коде неудобно, автодополнение работает плохо. Поэтому мы хотели бы придумать для него более простое имя.
РЕКОМЕНДУЕМ:
Полезные советы разработчику на языке Kotlin
Традиционный способ сделать это — завернуть список в класс:
1 |
data class Users(val userList: List<User>) |
Но в Kotlin есть более простой и лишенный оверхеда вариант:
1 |
typealias Users = List<User> |
Typealias не вводит новый тип данных и не создает классов, это просто второе имя для определенного типа данных. Его можно использовать не только для сокращения записи, но и для разделения неймспейсов, если несколько пакетов содержат классы с одинаковыми именами.
Другие полезные примеры использования typealias:
- Более наглядный способ объявления лямбд:
123typealias Result<T> = (T) -> Unitfun fetchData(callback: Result<String>) - Маркировка nullable-типов:
1typealias MaybeBook = Book? - Быстрый доступ к вложенным классам:
123typealias DialogBuilder = AlertDialog.Builderval dialog = DialogBuilder().build()
РЕКОМЕНДУЕМ:
Классы-делегаты в Kotlin