Во что компилируется typealias?



Typealias не создает новый тип данных, а только создает псевдоним для существующего типа. При компиляции кода, все typealias заменяются на соответствующий тип, поэтому typealias не приводит к увеличению размера кода.



Например, typealias IntPredicate = (Int) -> Boolean при компиляции будет заменено на (Int) -> Boolean, то есть функцию, принимающую значение типа Int и возвращающую значение типа Boolean.



Можно ли использовать typealias для функциональных типов?



Да, можно использовать typealias для функциональных типов в Kotlin. Например, вы можете создать псевдоним для типа функции, которая принимает два параметра типа Int и возвращает значение типа String, следующим образом:



typealias IntToString = (Int, Int) -> String



Это позволит вам использовать созданный псевдоним вместо полного объявления типа, то есть вместо:



fun processValues(f: (Int, Int) -> String) {

// ...

}



можно использовать:



fun processValues(f: IntToString) {

// ...

}



Как и в случае с другими typealias, компилятор Kotlin просто заменяет псевдоним на соответствующий тип при компиляции кода.