【问题标题】:Why is this Coffeescript invalid?为什么这个 Coffeescript 无效?
【发布时间】:2014-05-15 05:43:41
【问题描述】:

我正在使用 Coffeescript,试图将 JavaScript 文件转换为 Coffeescript。这是有效的 JavaScript:

element(by.model('query.address')).sendKeys('947');

这是无效的 Coffeescript:

element(by.model('query.address')).sendKeys('947')

Coffeescript 有哪些无效之处? Coffeelint 说“出乎意料的 BY”。

【问题讨论】:

  • unexpected X 表示您应该在谷歌上搜索X 和语言

标签: coffeescript


【解决方案1】:

CoffeeScript 使用 by 关键字让您在循环范围时使用特定步骤。

来自文档:

要在固定大小的块中逐步执行范围推导,请使用 by,例如:

evens = (x for x in [0..10] by 2)

由于 JavaScript 不使用 by 它是有效的。对于 CoffeeScript,请尝试将 by 重命名为其他名称。

作为对评论的回应,由于 Protractor 提供了自己的 by 全局变量,一个想法是通过 CoffeeScript 的嵌入式 JavaScript 语法(由反引号包围的代码)为其设置别名,然后在整个代码中继续使用 CoffeeScript 和别名.

您需要测试这种类型的代码:

ptorBy = `by`
element(ptorBy.model('query.address')).sendKeys('947')

ptor 只是我对“量角器”的简写。这将转换为以下 JavaScript:

var ptorBy;
ptorBy = by;
element(ptorBy.model('query.address')).sendKeys('947');

【讨论】:

  • 这太糟糕了。我正在使用的测试库(量角器)将by 公开为全局变量。这是否使它与 Coffeescript 不兼容?
  • @BenHarold 你也许可以给它起别名并让它工作。我已经编辑了我的回复以显示这一点。
  • @BenHarold 如果您在正确的范围内,您可以尝试将其引用为 window.by@by
猜你喜欢
  • 2016-07-27
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-21
  • 2019-07-26
  • 2019-03-26
相关资源
最近更新 更多