हाल ही में, एक vcs मर्ज के गलत होने के बाद, हमने पाया कि ES6 कक्षाएं (कम से कम NodeJS में) आपको दो बार परिभाषित एक विधि की अनुमति देती हैं। यानी नीचे दिया गया प्रोग्राम बिना किसी शिकायत के चलता है।

class Test {
  foo() {
    console.log("first one")
  }

  foo() {
    console.log("second one")
  }
}
const test = new Test;
test.foo()

हमारे वास्तविक दुनिया के उदाहरण में दो विधि परिभाषाएँ स्रोत फ़ाइल में बहुत दूर थीं और इसने हमें थोड़ी देर के लिए रोक दिया था। क्या नोडजेएस में ES6 कक्षाओं को नहीं की अनुमति देने के लिए बाध्य करने का कोई तरीका है? क्या कोई झंडा है जिसे हम node चला सकते हैं जो इसकी अनुमति नहीं देगा, या शायद एक es-lint नियम? या कोई तीसरी बात जिसके बारे में मैं नहीं सोच रहा हूँ?

हम मूल रूप से कुछ ऐसा चाहते हैं जो हमारे प्रोग्राम को चलने से रोकेगा यदि दो विधियों के साथ एक ही वर्ग परिभाषित है।

0
Alan Storm 24 मार्च 2020, 06:37

1 उत्तर

सबसे बढ़िया उत्तर

ESLint इसका पता लगाने के लिए no-dupe-class-members नियम प्रदान करता है। मुद्दे का प्रकार। यह eslint:recommended कॉन्फ़िगरेशन का हिस्सा है, इसलिए यदि आपको पहले से कोई त्रुटि नहीं मिल रही है, तो संभवतः आपने इसे सक्षम नहीं किया है। यदि आप यही मार्ग अपनाना चाहते हैं तो विशिष्ट नियम को सक्षम करना आसान है, लेकिन मैं वास्तव में eslint:recommended को सामान्य रूप से सक्षम करने पर विचार करूंगा ताकि आप अपने आप को कम बनाए रखें। आप हमेशा उन चेतावनियों को बंद कर सकते हैं जो eslint:recommended सक्रिय करती हैं जो आपको पसंद नहीं हैं, लेकिन फिर कम से कम आपको स्वयं ऑप्ट-इन प्लगइन्स की पूरी सूची बनाए रखने की आवश्यकता नहीं है, और इसके बजाय ऑप्ट-इन करने के लिए चीजों की सूची बनाए रखें इसके बजाय बाहर

1
loganfsmyth 24 मार्च 2020, 04:00