createStaticInteropMock<T extends Object, U extends Object> function
- U dartMock,
- [Object? proto = null]
Given a @staticInterop
type T and an instance dartMock
of a Dart class
U that implements the external extension members of T, creates a forwarding
mock.
Optionally, you may provide a JS prototype object e.g. the JS value
Window.prototype
using proto
. This allows instanceof and is checks with
@Native
types to pass with the returned forwarding mock.
When external extension members are called, they will forward to the
corresponding implementing member in dartMock
. If U does not implement the
needed external extension members of T, or if U does not properly override
them, it will be considered a compile-time error.
For example:
@JS()
@staticInterop
class JSClass {}
extension JSClassExtension on JSClass {
external String stringify(int param);
}
@JSExport()
class DartClass {
String stringify(num param) => param.toString();
}
...
JSClass mock = createStaticInteropMock<JSClass, DartClass>(DartClass());
Implementation
external T createStaticInteropMock<T extends Object, U extends Object>(
U dartMock,
[Object? proto = null]);