如何在 Kotlin 中使用名为 "val()" 的函数? / 扩展外部 JS 类
How to use a function called "val()" in Kotlin? / extend external JS classes
我在尝试将 Cloud Functions for Firebase 与 Kotlin 结合使用时遇到问题。
当从 数据库触发器 访问数据时,您使用 Javascript 中的 snapshot.val();
函数。在 Kotlin 中,这 不可能 因为 val
是 Kotlin 中的关键字。我设法通过使用
解决了这个问题
snapshot.`val()`
这样我就可以调用 Kotlin 中任意名称的函数了。现在我觉得每次都输入这个 "grave accent" (`) 真的很烦人,所以我尝试创建一个扩展函数。
我的问题是我不知道如何引用类型。在Javascript访问数据库时是DeltaSnapshot
or DataSnapshot
。
如何扩展外部 类 或者如何用不同的名称调用它?
类型别名将不起作用,因为它们仅限于 类 / 而不是支持函数。
在 javascript 中 class 也是一个对象
snapshot['val']();
更通用
object[functionName]();
object[functionName].call(object, ...args);
object[functionName].apply(object, args);
您尝试跟随了吗?
external class MyClass {
@JsName("val")
fun foo()
}
试试这个:
js("snapshot.val()").yourKotlinCode
对我有用
我在尝试将 Cloud Functions for Firebase 与 Kotlin 结合使用时遇到问题。
当从 数据库触发器 访问数据时,您使用 Javascript 中的 snapshot.val();
函数。在 Kotlin 中,这 不可能 因为 val
是 Kotlin 中的关键字。我设法通过使用
snapshot.`val()`
这样我就可以调用 Kotlin 中任意名称的函数了。现在我觉得每次都输入这个 "grave accent" (`) 真的很烦人,所以我尝试创建一个扩展函数。
我的问题是我不知道如何引用类型。在Javascript访问数据库时是DeltaSnapshot
or DataSnapshot
。
如何扩展外部 类 或者如何用不同的名称调用它? 类型别名将不起作用,因为它们仅限于 类 / 而不是支持函数。
在 javascript 中 class 也是一个对象
snapshot['val']();
更通用
object[functionName]();
object[functionName].call(object, ...args);
object[functionName].apply(object, args);
您尝试跟随了吗?
external class MyClass {
@JsName("val")
fun foo()
}
试试这个:
js("snapshot.val()").yourKotlinCode
对我有用