Certains types se lisent comme une longue adresse : Map<String, List<Pair<UserId, Role>>> — très bien pour le compilateur, fatigant pour les humains. typealias donne un nom plus court sans changer le temps d'exécution - il s'agit toujours du même type sous-jacent. Lorsque vous avez besoin d'un type distinct au moment de la compilation sans encapsuler les coûts sur la JVM, la classe de valeur @JvmInline encapsule une valeur mais l'efface au moment de l'exécution lorsqu'elle est optimisée – parfait pour les identifiants et les unités.
typealias - surnom, pas une nouvelle identité