与 JVM 相比,JS 中 KProperty1<T, R> 的不同语义
Different semantics of KProperty1<T, R> in JS compared to JVM
看起来 KProperty1<T, R>
在 JVM 和 JS 中有不同的语义,例如虽然此测试适用于 JVM:
data class Data(val name: String)
class Test {
@Test fun propertiesMustBeEqual() {
assertEquals(Data::name, Data::name)
}
}
它在 Javascript 中失败并显示以下消息:
1) test
Test
propertiesMustBeEqual:
AssertionError: Expected <function ($receiver) {
return $receiver.name;
}>, actual <function ($receiver) {
return $receiver.name;
}>
有什么解决办法吗?
未绑定 属性 对相同 属性 的引用在所有平台上应该是平等的。但是在 JS 中它们不相等的情况是一个错误,被跟踪为 https://youtrack.jetbrains.com/issue/KT-15101
看起来 KProperty1<T, R>
在 JVM 和 JS 中有不同的语义,例如虽然此测试适用于 JVM:
data class Data(val name: String)
class Test {
@Test fun propertiesMustBeEqual() {
assertEquals(Data::name, Data::name)
}
}
它在 Javascript 中失败并显示以下消息:
1) test
Test
propertiesMustBeEqual:
AssertionError: Expected <function ($receiver) {
return $receiver.name;
}>, actual <function ($receiver) {
return $receiver.name;
}>
有什么解决办法吗?
未绑定 属性 对相同 属性 的引用在所有平台上应该是平等的。但是在 JS 中它们不相等的情况是一个错误,被跟踪为 https://youtrack.jetbrains.com/issue/KT-15101