Platform and version requirements: JS (1.1)

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.

© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.