staticInterop top-level constant
_StaticInterop
const staticInterop
staticInterop enables the JS annotated class to be treated as a "static"
interop class.
These classes allow interop with native types, like the ones in dart:html.
These classes implicitly all erase to the internal interceptor
JavaScriptObject, so they can be freely casted to and from other
staticInterop types, dart:html types, and JSObject from
dart:js_interop. Non-staticInterop package:js types can be casted to
staticInterop types, but the reverse can fail if the underlying value is a
@Native-reserved type (like dart:html types).
staticInterop classes have the following restrictions:
- They must contain a
JSannotation, either from this library or fromdart:js_interop. - They should not contain any instance members, inherited or otherwise, and should instead use static extension members, which can be external or non-external.
- They can only contain factories and
staticmembers. They can be combined with anonymous to make external factories create new JavaScript object literals instead. - They should not implement, extend, or mixin non-staticInterop classes and vice-versa.
- The annotation should only be applied to non-mixin classes and no other declarations.
Implementation
const _StaticInterop staticInterop = _StaticInterop();