我认为类型别名与原始类型相同,只是名称不同。

我认为类型别名与原始类型具有相同的引用。

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/

10-09 02:55