Как правильно получить доступ к `экспорту по умолчанию` в KotlinJS - PullRequest
0 голосов
/ 16 мая 2018

Я играю с 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)

Однако я получаю

Uncaught 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 голосов
/ 12 октября 2018

Вместо @JsName("Vue") попробуйте: @JsName("default")

...