JsExport

Common
1.4
@ExperimentalJsExport @Target([AnnotationTarget.CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.FILE]) annotation class JsExport
(source)
JS
1.3
@Target([AnnotationTarget.CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.FILE]) annotation class JsExport
(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.

Annotations

Common
JS
1.8

Ignore

annotation class Ignore

Constructors

Common
JS
1.0

<init>

Exports top-level declaration on JS platform.

<init>()