我正在使用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": '' }
});
答案 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/