функция createStaticInteropMock< T extends Object, U extends Object>
- U dartMock,
- [Object? proto = null]
Для типа @staticInterop T и экземпляра dartMock класса Dart U, реализующего внешние члены расширения T, создаётся перенаправляющая заглушка.
При желании можно передать объект прототипа JS, например значение JS Window.prototype, используя proto. Это позволяет проверкам instanceof и is с типами @Native успешно проходить для возвращённой перенаправляющей заглушки.
При вызове внешних членов расширения они будут перенаправляться соответствующему реализующему члену в dartMock. Если U не реализует необходимые внешние члены расширения T или не переопределяет их должным образом, это будет считаться ошибкой времени компиляции.
Например:
@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()); Реализация
external T createStaticInteropMock<T extends Object, U extends Object>(
U dartMock,
[Object? proto = null]);
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-js_util/createStaticInteropMock.html