2

我有一个 Dart 类(foo.dart):

class Foo {
  void talk() {
    print('Hello');
  }
}

将 foo.dart 编译为 JavaScript 后,我​​希望能够像这样使用 Foo:

var foo = new Foo(); // from foo.dart.js
foo.talk() // prints "Hello"

我的问题:

  • 这目前可能吗?
  • 如果是这样,怎么做?
  • 如果没有,有什么计划(如果有的话)使之成为可能?

dart:js 库文档指出

这个库还没有让 Dart 对象在 JavaScript 中可用,它们的方法和属性 [原文如此] 是不可访问的,尽管它确实允许 Dart 函数被传递到 JavaScript 中并从 JavaScript 中调用。

“尚未”这个词提供了一些希望,但我在其他任何地方都找不到关于这个主题的任何内容。

编辑:

我确实意识到可以使用 dart2js 从 JavaScript 调用 Dart 函数。但是,我想要做的有些不同。我希望能够从 JavaScript 访问 Dart 类的所有功能。

4

1 回答 1

2

由于 tree-shaking 和缩小,这通常是不可能的。如果你有一个 Dart 应用程序(使用 a main()then 你可以使一个 Dart 函数可以被 JavaScript 调用(参见如何从 Javascript 调用一个 Dart 函数?例如)。

据我所知,有计划支持您的要求,但我不知道进度或何时可以使用此类功能。

这是相关项目https://github.com/dart-lang/js-interop

于 2014-12-05T17:17:20.690 回答