typealias в Kotlin это просто псевдоним для типа.
Он не создаёт новый тип, а даёт другое имя уже существующему.
Польза от typealias
| Польза | Пример | 
|---|---|
| Повышение читаемости | Username вместо String, Handler вместо (Int, String) -> Unit | 
| Переименование длинных типов | Map<String, List<Pair<Int, String>>> → typealias UserMap = ... | 
| Упрощение внедрения API | Поддержка устаревшего/внешнего имени, не меняя реальный тип | 
| Тестирование | typealias Dispatchers = CoroutineDispatcher → удобно мокать | 
| Работа с generic и DSL | Например: typealias Reducer<S> = (S, Action) -> S | 
Во что компилируется typealias?
Вообще ни во что. Kotlin удаляет typealias на стадии компиляции. Он существует только в исходниках, для читаемости.