Kotlin JS 重写 'external' 带有可选参数错误的函数
Kotlin JS Overriding 'external' function with optional parameters error
我使用 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的函数字面量类型,但另一个问题是我们不能(一般)正确地将其映射到Kotlin的函数字面量类型。
相关问题:
https://youtrack.jetbrains.com/issue/KT-16319
https://github.com/Kotlin/ts2kt/issues/55
https://github.com/Kotlin/ts2kt/issues/56
我使用 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的函数字面量类型,但另一个问题是我们不能(一般)正确地将其映射到Kotlin的函数字面量类型。
相关问题: https://youtrack.jetbrains.com/issue/KT-16319 https://github.com/Kotlin/ts2kt/issues/55 https://github.com/Kotlin/ts2kt/issues/56