Will Dart是否支持使用现有的JavaScript库?

时间:2011-10-10 16:44:53

标签: javascript libraries dart

我理解Dart编译为JavaScript,我读了库上的Dart Language Spec,虽然我没有看到答案。此外,在discussion form上搜索“现有”一词会显示3个与之无关的结果。

有人知道Dart是否支持使用现有的JavaScript库,例如jQuery或Raphael?

5 个答案:

答案 0 :(得分:94)

答案现在是的! Dart现在提供了一个JS-interop库,可以在Dart应用程序中使用现有的JavaScript代码。点击此处了解详情:https://www.dartlang.org/articles/js-dart-interop/

答案 1 :(得分:15)

您将无法直接从dart代码调用javascript。本机指令保留给dartc的核心库(dart:core,dart:dom,dart:html,dart:json等),它本身编译为javascript。

答案 2 :(得分:8)

现在有了一种更简单的新方式https://pub.dartlang.org/packages/js(目前版本为0.6.0-beta.6)

为Dart提供JS类和函数,如:

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

了解更多信息,请参阅软件包的自述文件

答案 3 :(得分:4)

请参阅讨论论坛中的此主题:Calling old javascript code

答案 4 :(得分:4)

还有一个dart:js库。以下是an article解释如何使用此库与JavaScript进行互操作。