相关疑难解决方法(0)

将Dart函数公开给javascript

我有点像飞镖,并试图通过在其中编写一些库函数来弄湿我的脚.

虽然我从dart调用javascript函数没有问题,但我希望能够从javascript调用dart函数,但到目前为止,我没有太多喜欢.

例如,我希望能够从dart中公开一些基本功能,例如:

main() {
  String foo() {
    return "bar!";
  }

  js.scoped(() {
    js.context.foo = foo;
  });
}
Run Code Online (Sandbox Code Playgroud)

然后能够从javascript中调用它们,如下所示:

<script>
  window.onload = function() {
    alert("foo() = " + foo());
  }
</script>
Run Code Online (Sandbox Code Playgroud)

这样的事情甚至可能吗?

dart dart-js-interop

13
推荐指数
1
解决办法
3249
查看次数

飞镖可以生成可读的JavaScript库吗?

目标

我想写一个javascript库(框架),但需要OOP和mixins.

是打算使用打字稿,但它不支持mixins(手册说它确实如此,但编译器/规范没有任何与mixin相关的东西).

打字稿

在typescript中,以下代码:

class Greeter {
    greeting: string;
    constructor(message: string) {
        this.greeting = message;
    }
    greet() {
        return "Hello, " + this.greeting;
    }
}
Run Code Online (Sandbox Code Playgroud)

编译为:

var Greeter = (function () {
    function Greeter(message) {
        this.greeting = message;
    }
    Greeter.prototype.greet = function () {
        return "Hello, " + this.greeting;
    };
    return Greeter;
})();
Run Code Online (Sandbox Code Playgroud)

然后客户可以简单地致电:

var greeter = new Greeter("world");
Run Code Online (Sandbox Code Playgroud)

飞镖可以做类似的事吗?有人能说明怎么样?

主要目标是生成的javascript代码是可读的,最好是所有的dart extras驻留在不同的脚本中.

我已经看到了这个问题这个答案,但似乎都没有产生可读的JS文件,就像上面的打字稿示例一样.

javascript dart dart2js

7
推荐指数
1
解决办法
439
查看次数

标签 统计

dart ×2

dart-js-interop ×1

dart2js ×1

javascript ×1