2017-11-20 37 views
5

मैं इस तरह एक वस्तु ES6 में शाब्दिक छोटा करने के लिए चाहता था:एस्लिंट त्रुटि को कैसे ठीक करें "पसंद-विनाशकारी"?

const loc = this.props.local; 

कारण loc.foo(); है एक बहुत से this.props.local.foo();

टाइप करने के लिए आसान है लेकिन अब ESLint शिकायत:

उपयोग वस्तु विनाशकारी:

मैंने 0 को पढ़ा हैलेकिन मुझे यह समझ में नहीं आता है। उनके पास एक उदाहरण है जो मेरे कोड के समान दिखता है लेकिन उनका ठीक लगता है?

var foo = object.bar; 

मैं इसे कैसे .eslintrc फ़ाइल में अनदेखी करने के लिए सेट किए बिना त्रुटि को ठीक कर सकते हैं?

+0

यह एक नियम है जिसे पहले स्थान पर * सक्षम * करने की आवश्यकता है। यदि आप इसे पसंद नहीं करते तो आपने ऐसा क्यों किया? – Bergi

+1

यह सच नहीं है। अगर कोई किसी और की कॉन्फ़िगरेशन बढ़ाता है, तो आपको इसके बजाय इस नियम को अक्षम करना पड़ सकता है। – merlinpatt

+1

क्षमा करें, उल्लेख करना भूल गया है कि मैं एयरबिन स्टाइलगाइड – Timo

उत्तर

10

परिवर्तन आपके कोड का उपयोग करने के लिए आपको बता रही है:

const local = this.props.local; 

रहे हैं:

const { local } = this.props; 

वे बराबर हैं और आप एक ही तरह से local.foo() कॉल कर सकते हैं। सिवाय इसके कि दूसरा उपयोग वस्तु विनाशकारी।

+1

धन्यवाद, यह चाल है। मुझे आश्चर्य है कि क्यों एयरबिन स्टाइलगाइड सोचता है कि यह महत्वपूर्ण है। इम्हो यह चीजों को और अधिक जटिल बनाता है। – Timo

+0

यह एक ईएस 6 सुविधा है जो सरणी या वस्तुओं से चर को अनपैक करने के लिए उपयोग की जाती है। यह वाक्यविन्यास चर से एक सरणी बनाते हैं: 'var x = [y, z] '। विनाशकारी असाइनमेंट समान वाक्यविन्यास का उपयोग करता है, लेकिन असाइनमेंट के बायीं तरफ से यह निर्धारित करने के लिए कि किस मूल्य को सोर्स किए गए चर से अनपैक करना है। var [y, z] = x। वस्तुओं के लिए एक ही बात सच है। https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment। बस! –

+1

हाँ, यह कई मान निकालने के लिए समझ में आता है लेकिन एक के लिए नहीं। Airbnb styleguide इस बिंदु imho पर सख्त करने के लिए थोड़ा सा है। – Timo

1

यह ईएस 6 में एक नया निर्माण है जो आपको असाइनमेंट में किसी ऑब्जेक्ट की संपत्ति से मेल खाता है। आपको जिस वाक्यविन्यास की आवश्यकता है वह है: const { local: loc } = this.props

जो अनुवाद करता है: "निरंतर लोक घोषित करें और इसे इस.प्रॉप से ​​स्थानीय संपत्ति का मूल्य असाइन करें"।

0

यह से

const {props: {local: loc}} = this; 
+1

का उपयोग कर रहा हूं यह सामान्य रूप से किसी संपत्ति को एक्सेस करने से बहुत अधिक उलझन में और भ्रमित है। –

+0

@ मार्टिनडॉसन मैं सहमत हूं, लेकिन आपको यह बताना होगा कि जिस व्यक्ति ने अपने लिटर के 'प्राथमिक-विनाशकारी' नियम को सक्षम किया है :-) – Bergi

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