Kotlin JS用可选的参数错误重写“外部”函数

我拉着jQuery在我的项目中使用ts2kt。 基本工作正常,但是,我不知道如何调用这个函数(我只是想传递一个回调):

fun done(doneCallback1: JQueryPromiseCallback<T>? = definedExternally /* null */, vararg doneCallbackN: JQueryPromiseCallback<T>): JQueryPromise<T> 

JQueryPromiseCallback接口如下所示:

 external interface JQueryPromiseCallback<T> { @nativeInvoke operator fun invoke(value: T? = definedExternally, vararg args: Any) } 

我试图创建一个它的实例传入像这样:

 done(object : JQueryPromiseCallback<Any> { override fun invoke(value: Any?, vararg args: Any) { } }) 

但是,我得到一个错误的调用函数:

使用可选参数重写“外部”功能

生成的@nativeInvoke注解也被弃用,并给我一个我不明白的弃用信息:

使用动态的身体使用内联扩展功能

我应该纠正ts2kt生成的文件? 如果是这样,怎么样? 我只是没有覆盖invoke方法的语法吗?

现在最好的方法是用Kotlin的函数字面类型替换界面,但是另一个问题是我们不能正确地(通常)将它映射到Kotlin的函数字面类型。

相关问题: https : //youtrack.jetbrains.com/issue/KT-16319 https://github.com/Kotlin/ts2kt/issues/55 https://github.com/Kotlin/ts2kt/issues/56