Darts 目前生成复杂的 JavaScript 代码。我认为这是一个主要缺点,实际上我更喜欢使用 TypeScript 方法来解决这个问题。
我想知道当时是否有人知道 Dart 的战略计划。Dart 会在未来生成 - 有点 - 可以理解的 javascript 吗?
Darts 目前生成复杂的 JavaScript 代码。我认为这是一个主要缺点,实际上我更喜欢使用 TypeScript 方法来解决这个问题。
我想知道当时是否有人知道 Dart 的战略计划。Dart 会在未来生成 - 有点 - 可以理解的 javascript 吗?
问题是:你为什么会对查看编译后的代码感兴趣?
dart2js为编译后的代码生成源映射。
当您编译为 JavaScript 时,您应该会看到“地图文件”。这些源映射允许您在 Web 浏览器中查看和调试您的代码(目前在 Chrome 中工作,在工作中支持 Firefox)作为 Dart 代码,即使它正在执行 JavaScript。
即使您没有源映射,您也不需要调试 JavaScript 代码。如果你的代码没有运行,要么是 dart2js 的问题,要么是你的代码有问题,如果是你的代码,你可以在 Dartium 或 Chrome 中使用源映射进行调试。
我实际上喜欢以“问题是:您为什么有兴趣查看已编译的代码?”开头的答案,但是,我想补充一下:
我认为生成的 JavaScript 并没有那么糟糕。一旦你明白 foo$2 意味着 foo 是一个接受 2 个参数的函数,它就没有那么糟糕了。
dart2js 团队并没有尝试以简单的方式编译成 JavaScript。实际上,他们的目标之一是他们生成的 JavaScript 应该比您可以手动编写的更好,最好更快。这类似于 C 编译器生成的代码比您手动编写的汇编代码要快的事实,因为 C 编译器可以执行对于有限的人脑而言难以完成的优化。当 dart2js 内联某些函数时,您已经可以看到这种情况发生了。
但是,正如第一个答案指出的那样,真正的答案是我们有源映射,因此您应该很少需要查看 JavaScript。