Will Dart support the use of existing JavaScript libraries?

后端 未结 5 1691
北海茫月
北海茫月 2020-12-07 13:41

I understand Dart compiles to JavaScript, and I read the Dart Language Spec on Libraries, although I didn\'t see an answer there. Also a search on their discussion form for

相关标签:
5条回答
  • 2020-12-07 14:09

    There is now a new simpler way https://pub.dartlang.org/packages/js (currently version 0.6.0-beta.6)

    Make JS classes and functions available to Dart like:

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

    for more see the readme of the package

    0 讨论(0)
  • 2020-12-07 14:10

    The answer is now Yes! Dart now ships a JS-interop library to use existing JavaScript code with your Dart app. Learn more here: https://www.dartlang.org/articles/js-dart-interop/

    0 讨论(0)
  • 2020-12-07 14:13

    You will not be able to call javascript directly from dart code. The native directive is reserved for the core libraries of dartc (dart:core, dart:dom, dart:html, dart:json, etc), which itself compiles to javascript.

    0 讨论(0)
  • 2020-12-07 14:24

    There is also a dart:js library. And here is an article explaining how to use this library for interoperating with JavaScript.

    0 讨论(0)
  • 2020-12-07 14:30

    See this thread from the discussion forum: Calling old javascript code.

    0 讨论(0)
提交回复
热议问题