Spec-Zone.ru › Kotlin 1.9

<init>

kotlin-stdlib / kotlin.js / JsExternalInheritorsOnly / <init>
Требования к платформе и версии: JS (1.1)
JsExternalInheritorsOnly()

При размещении на внешнем интерфейсе или классе, требует, чтобы все его дочерние интерфейсы, классы и объекты также были внешними.

Компилятор изменяет идентификаторы функций и свойств из не-внешних интерфейсов и классов, и не изменяет идентификаторы из внешних. Требование, чтобы наследники внешних интерфейсов и классов также были внешними, необходимо, чтобы избежать неочевидных ошибок, когда именование идентификаторов в наследнике не соответствует именованию в базовом классе или интерфейсе.

Пример:

// From kotlin-wrappers
external interface Props {
    var key: Key?
}

// User code
@OptIn(ExperimentalStdlibApi::class)
@JsExternalInheritorsOnly
external interface LayoutProps : Props {
    var layout: Layout?
}

external interface ComponentProps : LayoutProps // OK

external interface ComponentA : ComponentProps // OK

interface ComponentB : ComponentProps // Compilation error!

Эта аннотация экспериментальная, что означает, что упомянутые выше ограничения могут быть изменены.

© 2010–2023 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-external-inheritors-only/-init-.html

Spec-Zone.ru

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