В случае, если это кому-то будет полезно, я оставлю здесь еще один обходной путь:
import kotlin.browser.window
fun main() {
window.asDynamic()["setup"] = ::setup
window.asDynamic()["draw"] = ::draw
}
fun setup() {}
fun draw() {}
Что он на самом деле делает, он создает функции в модуле kotlin как обычно, а затем назначает их объекту окна, что делаетit global.
Это решение все еще не идеально, потому что для каждой функции требуется ручное назначение.По крайней мере, он делает это правильно в проекте Kotlin, нет необходимости поддерживать отдельный чистый файл js.Возможно, можно создать аннотацию и использовать отражение kotlin (понятия не имею, как оно поддерживается в KotlinJS).
Хотя это решение работает для меня, я хотел бы иметь какое-то готовое решение, как для@JsNonModule external
функций.