111

我了解 Dart 编译为 JavaScript,并且我阅读了有关库的Dart 语言规范,尽管我在那里没有看到答案。此外,在他们的讨论表中搜索“现有”一词会发现 3 个不相关的结果。

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

4

4 回答 4

96

现在的答案是肯定的!Dart 现在提供了一个 JS-interop 库,以便在您的 Dart 应用程序中使用现有的 JavaScript 代码。在此处了解更多信息:https ://www.dartlang.org/articles/js-dart-interop/

于 2012-01-06T05:24:14.127 回答
15

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

于 2011-10-11T12:56:26.250 回答
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);
}

有关更多信息,请参阅软件包的自述文件

于 2015-10-30T15:43:09.350 回答
4

还有一个dart:js图书馆。这里有一篇文章解释了如何使用这个库与 JavaScript 进行互操作。

于 2013-12-26T23:09:49.617 回答