JsName
Gives a declaration (a function, a property or a class) specific name in JavaScript.
Since Kotlin
1.0Gives a declaration (a function, a property or a class) specific name in JavaScript.
This may be useful in the following cases:
There are two functions for which the compiler gives same name in JavaScript, you can mark one with
@JsName(...)
to prevent the compiler from reporting error.You are writing a JavaScript library in Kotlin. The compiler produces mangled names for functions with parameters, which is unnatural for usual JavaScript developer. You can put
@JsName(...)
on functions you want to be available from JavaScript.For some reason you want to rename declaration, e.g. there's common term in JavaScript for a concept provided by the declaration, which in uncommon in Kotlin.
Example:
class Person(val name: String) {
fun hello() {
println("Hello $name!")
}
@JsName("helloWithGreeting")
fun hello(greeting: String) {
println("$greeting $name!")
}
}