ExternalDartReference<T extends Object?> 扩展类型
对 Dart 对象的不透明引用,可以传递给 JavaScript。
引用表示形式取决于底层平台。当编译到 JavaScript 时,Dart 对象是 JavaScript 对象,可以直接使用而不需要任何转换。当编译到 Wasm 时,使用内部 Wasm 函数将 Dart 对象转换为不透明的 JavaScript 值,之后可以使用另一个内部函数将其转换回 Dart 对象。底层表示类型是可空的,这意味着非可空的 ExternalDartReference 可以为 null
。
此接口是 JSBoxedDartObject 的更快替代方案,因为它不将 Dart 对象包装在 JavaScript 对象中。然而,与 JSBoxedDartObject 不同,此值属于 Dart 运行时,因此不能用作 JS 类型。这意味着用户不能使用此作为表示类型声明互操作类型,也不能在此类型上声明互操作成员。此类型也不是 JSAny 的子类型。此类型只能用作外部 JavaScript 互操作成员或回调的参数和返回类型。使用 JSBoxedDartObject 以避免这些限制。
除了这些区别之外,ExternalDartReference 在功能上与 JSBoxedDartObject 相同。使用它通过 JavaScript 在同一运行时传递 Dart 对象。生成的 ExternalDartReference 没有可用的成员。
请参阅 ObjectToExternalDartReference.toExternalReference 以允许类型为 T
的任意值传递到 JavaScript。
- 在
-
- T