JsName所在位置是kotlin.js.JsName,其相关用法介绍如下。

用法:

@Target([AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER]) annotation class JsName
常见的

在 JavaScript 中给出声明(函数、属性或类)的特定名称。

对于 JS

在 JavaScript 中给出声明(函数、属性或类)的特定名称。

这在以下情况下可能很有用:

  • JavaScript 中有两个函数编译器会给出相同的名称,你可以用@JsName(...) 标记其中一个函数,以防止编译器报错。
  • 你正在用 Kotlin 编写一个 JavaScript 库。编译器会为带有参数的函数生成混乱的名称,这对于普通的 JavaScript 开发人员来说是不自然的。您可以将@JsName(...) 放在希望从 JavaScript 中获得的函数上。
  • 出于某种原因,您想重命名声明,例如声明提供的概念在 JavaScript 中有一个通用术语,这在 Kotlin 中并不常见。

例子:

class Person(val name: String) {
    fun hello() {
        println("Hello $name!")
    }

    @JsName("helloWithGreeting")
    fun hello(greeting: String) {
        println("$greeting $name!")
    }
}