为什么这个Coffeescript无效?

Ben*_*old 2 coffeescript

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

element(by.model('query.address')).sendKeys('947');
Run Code Online (Sandbox Code Playgroud)

这是无效的Coffeescript:

element(by.model('query.address')).sendKeys('947')
Run Code Online (Sandbox Code Playgroud)

Coffeescript的无效之处是什么?Coffeelint说"意外的BY".

Ahm*_*eed 6

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

从文档:

到步骤通过在固定大小的块的范围内理解,使用,例如:

evens = (x for x in [0..10] by 2)
Run Code Online (Sandbox Code Playgroud)

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

在回应评论时,由于Protractor提供了自己的by全局变量,因此一个想法是通过CoffeeScript的嵌入式JavaScript语法(由反向标记包围的代码)对其进行别名,然后在整个代码中继续使用CoffeeScript和别名.

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

ptorBy = `by`
element(ptorBy.model('query.address')).sendKeys('947')
Run Code Online (Sandbox Code Playgroud)

ptor只是我的短手"量角器".这转换为以下JavaScript:

var ptorBy;
ptorBy = by;
element(ptorBy.model('query.address')).sendKeys('947');
Run Code Online (Sandbox Code Playgroud)