抑制`期望一个标识符,而是在使用Mongoose的JSLint中看到'default'(保留字)`

时间:2012-06-07 16:44:15

标签: javascript node.js mongoose jslint jshint

我正在使用jshint来验证我的JavaScript文件。

在服务器端,我使用带有Mongoose的node.js。在Mongoose中,我鼓励以这样的方式编写schemata:

var UserSchema = new mongoose.Schema({
    firstname : { type: String, default: '' }
});

运行linting时,我收到错误:

Expected an identifier and instead saw 'default' (a reserved word).

有没有办法来抑制这个错误?我真的更喜欢这种行为而不是写作:

var UserSchema = new mongoose.Schema({
    firstname : { type: String, "default": '' }
});

2 个答案:

答案 0 :(得分:5)

default确实是JavaScript中的保留字(https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words)。虽然从技术上讲你可以毫无问题地在对象属性名中使用默认值,但如果你的解释器是严格的(如lint那样),你最终可能会遇到这种表示法的问题。

最简单的方法:通过添加引号来解决问题。林特不再抱怨你了。代码是两个字符更长,但是什么 - linting传递,并且保证由于使用保留关键字而没有问题。

答案 1 :(得分:4)

您也可以使用“es5”选项禁用此功能。

请参阅:http://jslinterrors.com/expected-an-identifier-and-instead-saw-a-a-reserved-word/