私はDartがJavaScriptにコンパイルすることを理解しており、ライブラリで Dart言語仕様 を読みましたが、そこには答えがありませんでした。また、 discussion form でWord 'existing'を検索すると、関係のない3つの結果が見つかります。
DartがjQueryやRaphaelなどの既存のJavaScriptライブラリの使用をサポートするかどうかを知っている人はいますか?
答えは今はいです! Dartは、既存のJavaScriptコードをDartアプリで使用するためのJS-interopライブラリを出荷するようになりました。詳細はこちら: https://www.dartlang.org/articles/js-Dart-interop/
Dartコードから直接JavaScriptを呼び出すことはできません。ネイティブディレクティブは、dartcのコアライブラリ(Dart:core、Dart:dom、Dart:html、Dart:jsonなど)用に予約されており、それ自体がjavascriptにコンパイルされます。
新しいシンプルな方法があります https://pub.dartlang.org/packages/js (現在バージョン0.6.0-beta.6)
次のように、JSクラスと関数をDartで使用できるようにします。
@JS("JSON.stringify")
external String stringify(obj);
@JS('google.maps')
library maps;
// Invokes the JavaScript getter `google.maps.map`.
external Map get map;
// `new Map` invokes JavaScript `new google.maps.Map(location)`
@JS()
class Map {
external Map(Location location);
external Location getLocation();
}
// `new Location(...)` invokes JavaScript `new google.maps.LatLng(...)`
//
// We recommend against using custom JavaScript names whenever
// possible. It is easier for users if the JavaScript names and Dart names
// are consistent.
@JS("LatLng")
class Location {
external Location(num lat, num lng);
}
詳細については、パッケージのreadmeを参照してください
ディスカッションフォーラムのこのスレッドを参照してください: 古いJavaScriptコードの呼び出し 。
Dart:js
ライブラリもあります。そして、JavaScriptと相互運用するためにこのライブラリを使用する方法を説明する 記事 があります。