从 Javascript 调用 Dart

Calling Dart from Javascript

如何让 dart 到 js 编译器将 dart api 导出到 js,并从原始 dart api 直接映射到转译产生的 js api?

目的很简单,就是在dart中写一个库,从js中使用。

从dart调用js没有问题。但是,我的问题是反过来解决互操作问题。目前我找不到任何库或文档来解决该问题。在 dart:js 和 package:js 库的文档中明确指定互操作仅以一种方式工作。

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

明确地说,我不鼓励像这样的解决方案 作为答案,因为它是一种灵活但不是标准的解决方案。出于某些目的,建议在原始和转译的 api 之间建立一个标准映射。而且引用的答案相当复杂。

这意味着即使术语 "I N T E R"op 也可能是错误的,因为它暗示了两种操作方式!目前,dart 和 js 之间似乎没有互操作性——真的如此吗?

Dart 不适合该用例。 dart:js 和一些 hacking package:js 允许一个接一个地公开方法,但这似乎不适合您的用例。

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

对于生产,Dart 应该使用 dart2js 进行摇树优化和缩小的工具编译为 JS。 Tree-shaking 需要对整个应用程序进行分析才能知道需要保留哪些代码。

我从一些项目中听说,DDC 非常适合与您类似的用例。