传递对象文字

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));