为什么这个Coffeescript无效?

时间:2014-05-14 20:11:42

标签: coffeescript

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

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

这是无效的Coffeescript:

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

Coffeescript无效? Coffeelint说"意外的BY"。

1 个答案:

答案 0 :(得分:6)

CoffeeScript使用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');