JSExport

注解,允许使用dart:js_interopcreateJSInteropWrapper将Dart类包裹为JS对象。

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

您可以注解特定的实例成员以仅包裹这些成员,也可以注解整个类,这将包括其所有实例成员。

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

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

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

只有当注解的类及其继承的类也带有注解或其中特定的成员带有注解时,才会包含这些类的继承层次结构中的类和mixin。如果一个超类在任何地方都没有注解,则其成员不会被包括。如果成员被覆盖,只要覆盖成员或其类具有此注解,则只会包裹覆盖的成员。

只有具体的实例成员可以被包裹,并且注解其他成员将是一个错误。

构造函数

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