JsExport

Common
JS
1.3
@ExperimentalJsExport @Target([AnnotationTarget.CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.FILE]) annotation class JsExport
(Common source) (JS source)

Exports top-level declaration on JS platform.

Compiled module exposes declarations that are marked with this annotation without name mangling.

This annotation can be applied to either files or top-level declarations.

It is currently prohibited to export the following kinds of declarations:

  • expect declarations
  • inline functions with reified type parameters
  • suspend functions
  • secondary constructors without @JsName
  • extension properties
  • enum classes
  • annotation classes

Signatures of exported declarations must only contain "exportable" types:

  • dynamic, Any, String, Boolean, Byte, Short, Int, Float, Double
  • BooleanArray, ByteArray, ShortArray, IntArray, FloatArray, DoubleArray
  • Array<exportable-type>
  • Function types with exportable parameters and return types
  • external or @JsExport classes and interfaces
  • Nullable counterparts of types above
  • Unit return type. Must not be nullable

This annotation is experimental, meaning that restrictions mentioned above are subject to change.

Constructors

Common
JS
1.0

<init>

Exports top-level declaration on JS platform.

<init>()