2012-06-07 7 views
6

Używam jshint do sprawdzania poprawności moich plików JavaScript.Suppress `Oczekiwano identyfikatora i zamiast niego zobaczyłem 'default' (słowo zastrzeżone)` w JSLint z Mongoose

Na serwerze używam node.js z Mongoose. W Mongoose jestem zachęcani do pisania schematów w modzie jak:

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

Uruchamiając strzępienie, otrzymuję błąd:

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

Czy istnieje sposób, aby stłumić ten błąd? Naprawdę wolałbym to zachowanie zamiast piśmie:

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

Technicznie rzecz biorąc, to jest nieważne JS, choć większość środowisk wydają na to pozwolić. Nie jestem pewien, czy istnieje opcja konfiguracji w JSHint choć. –

+0

Naprawdę mam na to rację. Dlaczego Mongoose sugeruje nam pisanie nieprawidłowych JS? :/ – jsalonen

+1

Wystarczy umieścić go w cudzysłowie i przejść dalej. Na początku też mnie to dręczyło, ale teraz czuję się jak narkotyk, nawet jeśli się nad tym zastanawiam. – JohnnyHK

Odpowiedz

4

Możesz również użyć opcji "es5", aby wyłączyć tę opcję.

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

+0

Działa również dla "Oczekiwano identyfikatora, a zamiast tego zobaczyłem" w końcu "(zarezerwowane słowo)." co jest problemem przy korzystaniu z Promise API AngularJS. – Alex

+1

Jeśli nadal widzisz ten błąd, powinieneś zaktualizować swoją wersję JSHint. Od wersji 2.0.0 opcja "es5" jest domyślnie włączona, ale nadal widzę wiele odsyłaczy do połączonego artykułu z tej odpowiedzi. –

5

default jest rzeczywiście słowem zarezerwowanym w JavaScript (https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words). Chociaż technicznie możesz używać domyślnie w nazwie właściwości obiektu bez żadnych problemów, możesz mieć problemy z tą notacją, jeśli twój tłumacz jest surowy (jak lint).

Najprostszy sposób na przejście do przodu: popraw problem, dodając cytaty. Lint już cię nie jęczy. Kod jest dłuższy o dwa znaki, ale co z tego - linting przechodzi i masz gwarancję, że nie będziesz miał problemów z powodu użycia zastrzeżonego słowa kluczowego.

Powiązane problemy