在KotlinJS中访问`export default`的正确方法是什么?

时间:2018-05-16 13:03:26

标签: kotlin kotlin-js-interop

我正在玩Vue和KotlinJS并认为我可以通过这种方式访问​​Vue观察者函数,例如Vue.set

@JsModule("vue")
@JsName("Vue")
open external class Vue {
    companion object {
        fun <T> set(target: Any, key: String, value: T): T
        fun <T> set(target: Array<T>, key: Int, value: T): T
    }
}
...
Vue.set(state.todos, 1, todo)

但是我得到了

  

未捕获的TypeError:$ module $ vue.set不是函数

其中$module$vue = require("vue")

这有什么用(注意object default而不是companion object

@JsModule("vue")
@JsName("Vue")
open external class Vue {
    object default {
        fun <T> set(target: Any, key: String, value: T): T
        fun <T> set(target: Array<T>, key: Int, value: T): T
    }
}
...
Vue.default.set(state.todos, 1, todo)

为什么会这样,并且有一个很好的解决方法吗?

1 个答案:

答案 0 :(得分:0)

尝试使用@JsName("Vue")代替@JsName("default")