我使用 ts2kt 引入了 jQuery 以在我的项目中使用。基础工作正常,但是,我不知道如何调用这个函数(我只想传递一个回调给它):
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) {
}
})
但是,我在调用函数上遇到错误:
Overriding 'external' function with optional parameters`
@nativeInvoke生成的注释也已弃用,并给了我一个我无法弄清楚的弃用消息:
Use inline extension function with body using dynamic
我应该更正 ts2kt 生成的文件吗?如果是这样,怎么做?我只是没有覆盖
invoke 的语法吗?方法对吗?
请您参考如下方法:
现在最好的办法是用 Kotlin 的函数字面量类型替换接口(interface),但另一个问题是我们不能正确(通常)将它映射到 Kotlin 的函数字面量类型。
相关问题:
https://youtrack.jetbrains.com/issue/KT-16319
https://github.com/Kotlin/ts2kt/issues/55
https://github.com/Kotlin/ts2kt/issues/56




