jslint缺少属性名称

时间:2014-07-17 11:45:43

标签: jslint

我正在使用jslint。我在评论中有这种宽容设置。

/*jslint todo: true*/

在线测试人员通过了它。我把它传递给之前测试过的一段代码。但是,稍后我会收到此失败消息:

Missing property name.

有谁知道为什么属性名称被认为是第二位而不是第一位?

更新17/072014 15:03 - 包含代码

我能够使用以下代码隔离该问题。如果在lint.com中运行,您可以在下面看到代码的各个部分以及它们输出的错误:

/**
  * @todo "Unexpected TODO comment".
  */

/*jslint todo: true*/
/**
  * @todo Will be tolerated by jslint.
  */
/*jslint todo: false*/

var obj = {
    /**
      * @todo "Unexpected TODO comment".
      */
};

/*jslint todo: true*/
var obj = {
    /**
      * @todo jslint will tolerate this line.
      */
};
/*jslint todo: false*/

var obj = {
    /*jslint todo: true*/
    /**
      * @todo jslint will never get to this line.
      */
    /*jslint todo: false*/
};

我发现无法在对象文字内设置容差属性。我现在可以解决这个问题。

我无法找到有关此问题的文档,因为我搜索的是' literal'文字符号错误掩盖了这些错误。有谁知道为什么会发生这种情况,或者是否有文件来解释它,或者甚至只是声明它发生了?

1 个答案:

答案 0 :(得分:1)

当您在对象中引入/* */条评论时,JSLint不喜欢它。

例如,我在此代码中出现此错误:

config.output = {
    /*jslint nomen:true*/
    path: __dirname + '/public',
    /*jslint nomen:false*/

    publicPath: BUILD ? '/' : 'http://localhost:8080/',
    filename: BUILD ? '[name].[hash].js' : '[name].bundle.js',
    chunkFilename: BUILD ? '[name].[hash].js' : '[name].bundle.js'
};

通过将其更改为:

解决了问题
/*jslint nomen:true*/
config.output = {
    path: __dirname + '/public',
    publicPath: BUILD ? '/' : 'http://localhost:8080/',
    filename: BUILD ? '[name].[hash].js' : '[name].bundle.js',
    chunkFilename: BUILD ? '[name].[hash].js' : '[name].bundle.js'
};
/*jslint nomen:false*/

我知道自从你提出要求以来已经过了一两年,但希望这能帮助其他正在寻找的人。