Spec-Zone.ru › Kotlin 1.4

JsName

kotlin-stdlib / kotlin.js / JsName
Требования к платформе и версии: JS (1.1)
@Target([AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER]) annotation class JsName
Для Common

Присваивает объявлению (функции, свойству или классу) конкретное имя в JavaScript.

Для JS

Присваивает объявлению (функции, свойству или классу) конкретное имя в JavaScript.

Это может быть полезно в следующих случаях:

  • Если для двух функций компилятор генерирует одинаковые имена в JavaScript, вы можете пометить одну из них @JsName(...), чтобы предотвратить ошибку компилятора.
  • Если вы пишете JavaScript-библиотеку на Kotlin. Компилятор генерирует искаженные имена для функций с параметрами, что не совсем удобно для обычного разработчика JavaScript. Вы можете добавить @JsName(...) к функциям, которые должны быть доступны из JavaScript.
  • По какой-то причине вы хотите переименовать объявление, например, существует общепринятое обозначение в JavaScript для концепции, предоставляемой объявлением, которое не является общепринятым в Kotlin.

Пример:

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

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

Конструкторы

Требования к платформе и версии: JS (1.0)

<init>

Присваивает объявлению (функции, свойству или классу) конкретное имя в JavaScript.

<init>(name: String)

Свойства

Требования к платформе и версии: JS (1.0)

name

имя, которое компилятор использует как для самого объявления, так и для всех ссылок на объявление. Требуется, чтобы это было корректное имя JavaScript-идентификатора.

val name: String

© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.js/-js-name/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API