package annotation
- Alphabetic
- Public
- All
Type Members
-
class
ExposedJSMember
extends Annotation with StaticAnnotation
IMPLEMENTATION DETAIL: Marks the annotated member as exposed as a JS member.
IMPLEMENTATION DETAIL: Marks the annotated member as exposed as a JS member.
This annotation is added automatically by the compiler to all public and protected members of a Scala.js-defined JS class. It marks the annotated member as being exposed as a JS member.
Do not use this annotation yourself.
-
class
JSBracketAccess
extends Annotation with StaticAnnotation
Marks the annotated method as representing bracket access in JavaScript.
Marks the annotated method as representing bracket access in JavaScript.
- See also
-
class
JSBracketCall
extends Annotation with StaticAnnotation
Marks the annotated method as representing bracket call in JavaScript.
Marks the annotated method as representing bracket call in JavaScript.
- See also
-
class
JSExport
extends Annotation with StaticAnnotation
Specifies that the given entity should be exported for use in raw JS.
Specifies that the given entity should be exported for use in raw JS.
- Annotations
- @field() @getter() @setter()
- See also
-
class
JSExportAll
extends Annotation with StaticAnnotation
Exports all public members directly defined in a class / object.
Exports all public members directly defined in a class / object.
Strictly equivalent to putting JSExport on every public member. Note: You are allowed to export protected members, but you'll have to do this explicitly on each member.
-
class
JSExportDescendentClasses
extends Annotation with StaticAnnotation
Specifies that all the concrete classes extending the annotated class or should have all their public constructors exported for use in raw JS.
Specifies that all the concrete classes extending the annotated class or should have all their public constructors exported for use in raw JS. The constructors exported this way are exported under their fully qualified name.
-
class
JSExportDescendentObjects
extends Annotation with StaticAnnotation
Specifies that all the objects extending the annotated class or trait should be exported for use in raw JS.
Specifies that all the objects extending the annotated class or trait should be exported for use in raw JS. Note that objects exported this way are exported under their fully qualified name.
-
class
JSExportTopLevel
extends Annotation with StaticAnnotation
Specifies that the given member should be exported to the top level of the module.
Specifies that the given member should be exported to the top level of the module.
- Annotations
- @field() @getter() @setter()
- See also
-
class
JSGlobalScope
extends Annotation with StaticAnnotation
Marks the annotated object as representing the JavaScript global scope.
Marks the annotated object as representing the JavaScript global scope.
This is particularly useful to model top-level functions and fields that are in the JavaScript global scope. They can be declared inside an object annotated with
@JSGlobalScope
.- See also
-
class
JSImport
extends Annotation with StaticAnnotation
Marks the annotated class or object as imported from another JS module.
Marks the annotated class or object as imported from another JS module.
Intuitively, this corresponds to the following ECMAScript import directive:
import { <name> as AnnotatedClassOrObject } from <module>
To import the default export of a module, use
JSImport.Default
asname
.@JSImport
is not compatible with thejsDependencies
mechanism offered by the Scala.js sbt plugin. You are responsible for resolving and/or bundling the JavaScript modules that you are importing using other mechanisms. -
class
JSName
extends Annotation with StaticAnnotation
Specifies the JavaScript name of an entity.
Specifies the JavaScript name of an entity.
- Annotations
- @field() @getter() @setter()
- See also
-
class
JavaDefaultMethod
extends Annotation with StaticAnnotation
Mark a concrete trait method as a Java default method.
Mark a concrete trait method as a Java default method.
This annotation can be used on concrete trait methods to mark them as Java default methods. This should be used *only* to implement interfaces of the JDK that have default methods in Java.
Otherwise using this annotation is unspecified.
-
class
RawJSType
extends Annotation with StaticAnnotation
Marks the annotated class, trait or object as a raw JavaScript type.
Marks the annotated class, trait or object as a raw JavaScript type.
This annotation is added automatically by the compiler to all classes, traits and objects inheriting directly or indirectly from scala.scalajs.js.Any. It marks the annotated entity as being a raw JavaScript type, i.e., one that represents type information for an entity defined in JavaScript code.
Do not use this annotation yourself.
-
class
SJSDefinedAnonymousClass
extends Annotation
IMPLEMENTATION DETAIL: Marks anonymous Scala.js-defined JS classes.
IMPLEMENTATION DETAIL: Marks anonymous Scala.js-defined JS classes.
This annotation is added automatically by the compiler to Scala.js defined anonymous classes.
Do not use this annotation yourself.
-
class
ScalaJSDefined
extends Annotation with StaticAnnotation
Marks the annotated class as a Scala.js-defined JavaScript class.
Marks the annotated class as a Scala.js-defined JavaScript class.
This annotation may only be used on a class extending js.Any.
-
class
WasPublicBeforeTyper
extends Annotation
IMPLEMENTATION DETAIL: Marks public members of anonymous classes before typer.
IMPLEMENTATION DETAIL: Marks public members of anonymous classes before typer.
This annotation is added automatically by the compiler to all public members of anonymous classes.
Do not use this annotation yourself.
-
class
JSExportNamed
extends Annotation with StaticAnnotation
Exports the given method to JavaScript with named parameters.
Exports the given method to JavaScript with named parameters.
It can then be called like this:
obj.foo({ param1: value1 param2: value2 param7: value3 });
Note that named exports don't support overloading. Therefore the following will fail:
class A { @JSExportNamed def a(foo: Int) = foo + 1 @JSExportNamed def a(bar: String) = "Hello " + bar }
As of Scala.js 0.6.11,
@JSExportNamed
is deprecated without direct replacement (see https://github.com/scala-js/scala-js/issues/2442). You should take a single parameter of a JS type and decompose it yourself. For example, instead ofclass A { @JSExportNamed def foo(a: Int, b: String, c: Boolean = false): Unit = { // do something with a, b, c } }
you should write:
@ScalaJSDefined trait FooOptions extends js.Object { val a: Int val b: String val c: js.UndefOr[Boolean] } class A { @JSExport def foo(options: FooOptions): Unit = { val a = options.a val b = options.b val c = options.c.getOrElse(false) // do something with a, b, c } }
- Annotations
- @deprecated
- Deprecated
(Since version 0.6.11)
- See also
-
class
JSFullName
extends Annotation with StaticAnnotation
IMPLEMENTATION DETAIL: Saves the fully qualified JS name of a symbol.
IMPLEMENTATION DETAIL: Saves the fully qualified JS name of a symbol.
This annotation was used prior to Scala.js 0.6.13. It is only kept for backwards binary compatibility, and should not be used anymore.
Do not use this annotation yourself.
- Annotations
- @deprecated
- Deprecated
(Since version 0.6.13) Replaced by internal.JSNativeLoadSpec.