傳遞物件文字
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));