傳遞物件文字

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