जावास्क्रिप्ट और ESLint में वैश्विक चर


100

मुझे कई जावास्क्रिप्ट फाइलें मिली हैं और मैंने एक फ़ाइल में कुछ वैश्विक चर को परिभाषित किया है जो दूसरों के सामने लोड करता है। परिणामस्वरूप, पहले के बाद लोड की गई सभी फाइलें वैश्विक चर तक पहुंच रखती हैं। हालाँकि ESLint वैश्विक चर को "परिभाषित नहीं" के रूप में दिखाता है। मैं ESLint के नियमों को बदलना नहीं चाहता हूं और मैं इन त्रुटि संदेशों से छुटकारा पाने का एक सुंदर तरीका खोजना चाहता हूं। कोई सुराग? धन्यवाद


4
-> eslint.org/docs/user-guide/configuring#specifying-globals । ESLint का प्रलेखन महान IMO है, आपको उस पर एक नज़र डालनी चाहिए।
फेलिक्स क्लिंग

जवाबों:


114

मुझे नहीं लगता कि प्रति फ़ाइल ESLint को हैक करना एक महान विचार है।

आप बल्कि परिभाषित करना चाहिए globalsमें .eslintrcया package.json

.Eslintrc के लिए:

"globals": {
    "angular": true
}

के लिए package.json:

"eslintConfig": {
    "globals": {
        "angular": true
    }
}

पुनश्च

डेवलपर्स के लिए प्रलेखन पढ़ना अनिवार्य है

https://eslint.org/docs/user-guide/configuring#specifying-globals


7
यह ध्यान देने योग्य हो सकता है कि आप वैश्विक चर सेट करते हैं trueयदि आप चर को किसी और चीज़ के लिए असाइन कर सकते हैं और falseयदि इसे पुन: असाइन नहीं किया जाना चाहिए।
RedSparr0w

6
दस्तावेज़ीकरण को जोड़ना एक ऐसा गुण है जो स्टैकओवरफ़्लो उत्तरों पर बहुत सराहा जाता है।
रोमेन जी

@RomainG नीचे पहले से लिंक है;) लेकिन मैं आपके लिए एक जोड़ दूंगा
v-andrew

87

आप प्रति फ़ाइल या अपने कॉन्फ़िगरेशन में ग्लोबल्स जोड़ सकते हैं। यदि आप अपना कॉन्फ़िगर नहीं बदलना चाहते हैं, तो आपको हर फ़ाइल में उपयोग किए गए ग्लोबल्स को जोड़ना होगा।

अपनी जावास्क्रिप्ट फ़ाइल के अंदर एक टिप्पणी का उपयोग करके ग्लोबल्स को निर्दिष्ट करने के लिए, निम्न प्रारूप का उपयोग करें:

/* global var1, var2 */

यह दो वैश्विक चर को परिभाषित करता है, var1और var2। यदि आप वैकल्पिक रूप से निर्दिष्ट करना चाहते हैं कि इन वैश्विक चर को कभी नहीं लिखा जाना चाहिए (केवल पढ़ें), तो आप प्रत्येक को एक झंडे के साथ सेट कर सकते हैं:

/* global var1:false, var2:false */

http://eslint.org/docs/2.0.0/user-guide/configuring#specifying-globals

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.