Appearance
staticInterop
const _StaticInterop staticInteropstaticInterop 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
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.