传递对象文字
JavaScript 中的常见做法是将对象文字传递给函数:
// JavaScript
printOptions({responsive: true});
Unfortunately we cannot pass Dart Map objects to JavaScript in these cases.
我们要做的是创建一个表示对象文字的 Dart 对象并包含其所有字段:
// Dart
@JS()
@anonymous
class Options {
external bool get responsive;
external factory Options({bool responsive});
}
请注意,Options
Dart 类与任何 JavaScript 类都不对应。因此,我们必须使用 @anonymous
注释标记它。
现在我们可以为原始 printOptions 函数创建一个存根,并使用一个新的 Options 对象调用它:
// Dart
@JS()
external printOptions(Options options);
printOptions(new Options(responsive: true));