Spec-Zone.ru › Dart 2

dart:js_util

функция createStaticInteropMock<T extends Object, U extends Object>

T createStaticInteropMock<T extends Object, U extends Object>(
  1. U dartMock,
  2. [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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API