包裝 JavaScript classesnamespaces

假設我們想要包裝 Google Maps JavaScript API google.maps

@JS('google.maps')
library maps;

import "package:js/js.dart";

@JS()
class Map {
  external Map(Location location);
  external Location getLocation();
}

我們現在有了 Map Dart 類,它對應於 JavaScript google.maps.Map 類。

在 Dart 中執行 new Map(someLocation) 將在 JavaScript 中呼叫 new google.maps.Map(location)

請注意,你不必將 Dart 類命名為與 JavaScript 類相同:

@JS("LatLng")
class Location {
  external Location(num lat, num lng);
}

Location Dart 類對應於 google.maps.LatLng 類。

不鼓勵使用不一致的名稱,因為它們會造成混淆。