我认为类型别名与原始类型相同,只是名称不同。
我认为类型别名与原始类型具有相同的引用。
typealias Celsius = Double
fun Double.Companion.foo() {} // Works
fun Celsius.Companion.foo() {} // Does not work
在这里,可以从
Companion
访问Double
,但是Celsius
提供了 Unresolved reference 错误。 最佳答案
不,您不能通过typealias访问伴随对象。一种可能的解决方案,为具体的同伴创建另一种类型别名:
typealias CelsiusCompanion = Double.Companion
之后,您可以按以下方式使用它:
fun CelsiusCompanion.foo() {}
关于kotlin - 如何为Typealias的伴随对象定义扩展功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50511445/