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 JS annotation, either from this library or from dart: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 static members. 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();