6

jshint用来验证我的 JavaScript 文件。

在服务器端,我将 node.js 与 Mongoose 一起使用。在 Mongoose 中,我被鼓励以如下方式编写模式:

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": '' }
});
4

2 回答 2

5

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

最简单的前进方法:通过添加引号来解决问题。Lint 不会再抱怨你了。代码长了两个字符,但那又怎样 - linting 通过了,并且您保证不会因为使用保留关键字而遇到问题。

于 2012-06-19T17:06:41.150 回答
4

您还可以使用“es5”选项来禁止这种情况发生。

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

于 2013-08-29T14:53:02.707 回答