2012-06-07 11 views
6

के साथ देखा गया है, मैं अपनी जावास्क्रिप्ट फ़ाइलों को सत्यापित करने के लिए jshint का उपयोग कर रहा हूं।'अपेक्षित पहचानकर्ता को दबाएं और इसके बजाय जेएसलिंट में' डिफ़ॉल्ट '(एक आरक्षित शब्द)' मोंगोस

सर्वर-साइड पर मैं मोंगोस के साथ node.js का उपयोग कर रहा हूं। नेवला में मैं की तरह एक फैशन में स्कीमेता लिखने के लिए प्रोत्साहित कर रहा हूँ:

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

वहाँ इस त्रुटि को दबाने के लिए एक रास्ता है:

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

जब linting चल रहा है, मैं त्रुटि मिलती है? मैं वास्तव में है कि व्यवहार के बजाय पसंद करेंगे लेखन की:

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

तकनीकी रूप से, कि, अवैध जे एस है, हालांकि ज्यादातर वातावरण यह अनुमति देने के लिए लग रहे हैं। मुझे यकीन नहीं है कि JSHint में कॉन्फ़िगरेशन विकल्प है या नहीं। –

+0

मुझे वास्तव में उस बिंदु को मिलता है। मोंगोस ने हमें अमान्य जेएस लिखने का सुझाव क्यों दिया? :/ – jsalonen

+1

बस इसे उद्धरण में रखें और आगे बढ़ें। यह मुझे पहले भी गड़बड़ कर रहा था, लेकिन अब मैं इसके बारे में सोचने में समय बिताने के लिए एक डोप की तरह महसूस करता हूं। – JohnnyHK

उत्तर

4

आप इसे होने से अक्षम करने के लिए "es5" विकल्प का भी उपयोग कर सकते हैं।

देखें: http://jslinterrors.com/expected-an-identifier-and-instead-saw-a-a-reserved-word/

+0

"एक पहचानकर्ता की अपेक्षा की गई और इसके बजाय 'आखिरकार' (एक आरक्षित शब्द) के लिए भी काम करता है।" जो AngularJS के वादा API का उपयोग करते समय एक समस्या है। – Alex

+1

यदि आप अभी भी यह त्रुटि देख रहे हैं तो आपको JSHint के अपने संस्करण को अपडेट करना चाहिए। चूंकि 2.0.0 'es5' विकल्प डिफ़ॉल्ट रूप से सक्षम किया गया है लेकिन मैं अभी भी इस उत्तर से लिंक किए गए आलेख में रेफ़रल का भार देख रहा हूं। –

5

default वास्तव में जावास्क्रिप्ट में एक आरक्षित शब्द (https://developer.mozilla.org/en/JavaScript/Reference/Reserved_Words) है। तकनीकी रूप से आप बिना किसी समस्या के ऑब्जेक्ट प्रॉपर्टी नाम में डिफॉल्ट का उपयोग कर सकते हैं, यदि आपका दुभाषिया सख्त है (जैसे लिंट है) तो आप उस नोटेशन के साथ समस्याएं समाप्त कर सकते हैं।

आगे बढ़ने का सबसे आसान तरीका: उद्धरण जोड़कर समस्या को ठीक करें। लिंट आपको अब तक नहीं चलेगा। कोड दो अक्षरों का लंबा है, लेकिन इसलिए - लिफ्टिंग पास हो जाती है और आरक्षित कीवर्ड के उपयोग के कारण आपको समस्याएं नहीं होने की गारंटी दी जाती है।

संबंधित मुद्दे