typealias
- это просто псевдоним для типа :), другими словами, это просто другое имя для типа.
Представьте, что вам нужно писать постоянно (Int, String) -> Unit
.С помощью typealias
вы можете определить что-то, что вы сделали, чтобы помочь и писать меньше, т.е. вместо:
fun Foo(handler: (Int, String) -> Unit)
Вы можете написать:
fun Foo(handler: MyHandler)
Они также помогают давать подсказки,Это означает, что они могут дать вам возможность описывать типы в более контекстуализированном виде.Представьте себе, что вы реализуете приложение, в котором время всего домена представлено как Int
.Один из подходов, который мы могли бы использовать, заключается в определении:
typealias Time = Int
С этого момента каждый раз, когда вы хотите что-то кодировать конкретно со временем, вместо использования Int
вы можете предоставлять больше контекста другим, используя Time
,Это не новый тип, это просто другое имя для Int
, поэтому все, что работает с целыми числами, тоже работает с ним.
Еще больше, если вы хотите иметь look