【问题标题】:CoffeeScript compatible fork with fixed scoping?具有固定范围的 CoffeeScript 兼容分支?
【发布时间】:2012-09-11 16:47:59
【问题描述】:

是否有除了fixed scoping 之外没有任何更改的CoffeeScript 分支,因此它在很大程度上与CoffeeScript 兼容(如果代码没有外部变量分配则完全兼容)?我会考虑以可接受的方式分配外部变量以包括 := a la LiveScript 或 nonlocal a la Python 或其他内容。

【问题讨论】:

  • 你为什么要这个?可能您会告诉我一些(边缘)案例,例如您跌倒在鼻子上等-我不想在这里流鼻涕。但是,对于使用 Coffeescript 的纯非技术/维护 POV,您会得到一种非常体面的语言(无论如何都比 JavaScript 更体面),它得到维护并且拥有大量追随者,因此任何错误和问题都将在短时间内得到解答。另一方面,像 Livescript 或 IcedCoffeeScript 这样的语言虽然具有一些很酷的功能(我希望 Jeremy 包含其中的一些功能),但在 CS 社区中简直是相形见绌
  • @robertj 是的,我只是在问——仅仅因为我了解了一个符合这些条件的分叉,并不意味着我会使用它并且不会应用进一步的判断(考虑到差异、上游陈旧性、社区/支持等)。这也是我寻找具有最小补丁集的 CS 分支的原因,以便它可以密切跟踪上游。我怀疑我的问题的答案是“不”,但仍然决定问 - 答案很可能有一天会改变。
  • 我完全同意这张海报。不可预测的作用域是一个错误。
  • hmm,我应该提一下,这个问题被范围是每个文件的事实所缓解。所以如果你有小文件,你可以避免这个问题。不过,我仍然更喜欢严格的本地范围界定。

标签: coffeescript coco


【解决方案1】:

没有。我认为 LiveScript 与 CoffeeScript 兼容,但这不是“小补丁”。

【讨论】:

  • 它们不兼容,但它们非常相似,并且很多代码只需要很少的修改即可工作。编写一个 CoffeeScript -> LiveScript 转换程序可能不会太难,我敢打赌已经有了。
【解决方案2】:

可能是 Coco 是你的朋友。
https://github.com/satyr/coco
我现在要自己尝试一下..

CoffeeScript 在隐藏 JavaScript 不好的部分的过程中, 积累了自己的怪癖:可怕的变量范围,尴尬的范围, 令人困惑和/或毫无意义的关键字、冗长的文件扩展名等 在。 Coco 试图修改它们,将两者的优点交织在一起。

在咖啡替代品列表中找到:
https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS

编辑:
Coco 解决方案仍有一个警告,afaik。
:= 语法只能帮助您进行分配,而不是读取访问权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-21
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    相关资源
    最近更新 更多