如何在我的web文件中为全局变量停止jshint错误?

Sam*_*tar 10 angularjs protractor

我有一个量角器测试脚本文件,如下所示:

var TestPage = function () {

    this.detailsTab = element(by.id('detailsTab'));
    ..
Run Code Online (Sandbox Code Playgroud)

它给了我很多错误说明elementby没有定义.有没有办法可以阻止所有这些提示错误出现?

dmu*_*ngs 11

量角器教程页面,您可以看到这些全局变量是由Protactor创建的:

本品采用全局elementby,同样由量角器创建.

所以你需要一种告诉JSHint关于这些全局变量的方法.您可以在JSHint的配置中执行此操作.http://www.jshint.com/docs/

内联配置方法

可以配置JSHint的方法之一是使用添加特殊的内联注释.以下是摘自JSHint文档页面的摘录,该页面描述了如何使用内联注释配置方法指定全局.

globals - 一个告诉JSHint关于在别处定义的全局变量的指令.如果value是false(默认值),JSHint会将该变量视为只读.与undef选项一起使用.

/* global MY_LIB: false */
Run Code Online (Sandbox Code Playgroud)

更新:因此对于量角器,内联配置将是:

/* global element */
/* global by */
Run Code Online (Sandbox Code Playgroud)

或者根据@runTarm的建议,这个浓缩语法也可以工作:

/* global element, by */
Run Code Online (Sandbox Code Playgroud)


配置文件方法

您还可以使用配置文件配置JSHint.检查文档以了解指定配置文件的不同方法.从文档页面我们以下摘录解释了如何编写文件以指定全局变量.

配置文件是一个简单的JSON文件,它指定要打开或关闭的JSHint选项.例如,以下文件将启用有关未定义和未使用变量的警告,并告知JSHint有关名为的全局变量MY_GLOBAL.

{
  "undef": true,
  "unused": true,
  "predef": [ "MY_GLOBAL" ]
}
Run Code Online (Sandbox Code Playgroud)