JsModule
@Target([AnnotationTarget.CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.FILE]) annotation class JsModule
Denotes an external
declaration that must be imported from native JavaScript library.
The compiler produces the code relevant for the target module system, for example, in case of CommonJS,
it will import the declaration via the require(...)
function.
The annotation can be used on top-level external declarations (classes, properties, functions) and files.
In case of file (which can't be external
) the following rule applies: all the declarations in
the file must be external
. By applying @JsModule(...)
on a file you tell the compiler to import a JavaScript object
that contain all the declarations from the file.
Example:
@JsModule("jquery")
external abstract class JQuery() {
// some declarations here
}
@JsModule("jquery")
external fun JQuery(element: Element): JQuery
Constructors
<init>
Denotes an external
declaration that must be imported from native JavaScript library.
JsModule(import: String)
Properties
import
name of a module to import declaration from. It is not interpreted by the Kotlin compiler, it's passed as is directly to the target module system.
val import: String