JSExport

该注解允许Dart类使用dart:js_interopcreateJSInteropWrapper方法被JS对象包装。

当带有此注解的类的实例传递给createJSInteropWrapper方法时,该方法返回一个JS对象,该对象包含类实例的每个成员属性。当调用这些属性时,它们将转发到实例的相应成员。

您可以选择注解特定的实例成员仅包装这些成员,或者您可以注解整个类,这将包括其所有实例成员。

默认情况下,属性将与相应的实例成员具有相同的名称。您可以通过在成员的@JSExport注解中提供一个name来更改JS对象中成员的属性名,如下所示

class Export {
  @JSExport('printHelloWorld')
  void printMessage() => print('Hello World!');
}

这将设置JS对象中的属性'printHelloWorld',以转发到printMessage

如果注解的类层次结构中的类和混合被注解或它们的特定成员被注解,则包括它们。如果一个超类在任何地方都没有注解,则不包含其成员。如果成员被重写,只要它或其类有此注解,则仅包装重写的成员。

只有具体的实例成员可以和将被包装,并且用此注解注解其他成员是错误的。

构造函数

JSExport([String name = ''])
const

属性

hashCode int
此对象的哈希码。
no setterinherited
name String
final
runtimeType Type
对象运行时类型的表示。
no setterinherited

方法

noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时被调用。
inherited
toString() String
此对象的字符串表示。
inherited

操作符

operator ==(Object other) bool
等号操作符。
inherited