从Javascript调用Dart

时间:2018-01-13 13:24:17

标签: javascript dart dart2js dart-js-interop

如何让dart到js编译器将dart api导出到js,并使用从原始dart api到js api的直接映射进行转换?

目的只是用dart编写一个库并从js中使用它。

从dart调用js没有问题。但是,我的问题是相反的。目前我无法找到任何库或文档作为该问题的解决方案。在dart:js和package:js库的文档中,明确指出interop只能以一种方式工作。

有不正确的解决方案来实现互操作的另一种方式,但只能通过黑客攻击。例如,Calling Dart code from javascript以一种受互操作库限制的方式强制传递和返回函数,而不是开发人员的意图。

明确地,我不鼓励这样的解决方案https://stackoverflow.com/a/45883551作为答案,因为它是一个灵活但不是标准的解决方案。出于某些目的,建议在原始和转换的apis之间进行标准映射。引用的答案非常复杂。

这意味着即使是术语也可能是错误的,因为它意味着两种操作方式!目前,dart和js之间似乎没有互操作 - 这是真的吗?

1 个答案:

答案 0 :(得分:1)

Dart不适合该用例。 dart:js以及一些黑客package:js允许逐个公开方法,但这似乎不适合您的用例。

您可以使用用于开发的DDC,但会发出可以从JS中使用的可读代码。

对于生产Dart应该使用dart2js工具编译为JS,这些工具可以进行树木抖动和缩小。树震动需要整个应用程序分析才能知道需要保留哪些代码。

我从DDC适用于与您类似的用例的项目中听到过。