2017-01-19 11 views
18

React.PropTypes का उपयोग टाइपस्क्रिप्ट प्रतिक्रिया अनुप्रयोग में समझ में आता है या यह सिर्फ "बेल्ट और निलंबन" का मामला है?टाइपस्क्रिप्ट प्रतिक्रिया अनुप्रयोग में PropTypes

के बाद से घटक वर्ग एक Props प्रकार पैरामीटर के साथ घोषित किया जाता है:

interface Props { 
    // ... 
} 
export class MyComponent extends React.Component<Props, any> { ... } 

वहाँ वर्ग परिभाषा के

static propTypes { 
    myProp: React.PropTypes.string 
} 

जोड़ने का कोई वास्तविक लाभ है?

उत्तर

3

मुझे लगता है कि कुछ गन्दा परिस्थितियों में जहां प्रोप के प्रकार को संकलित समय पर अनुमानित नहीं किया जा सकता है, तो propTypes का उपयोग करने से उत्पन्न चेतावनियों को देखना उपयोगी होगा।

इसके अलावा, मुझे वास्तव में कोई लाभ नहीं दिखता है (जिसे मैंने कभी व्यक्तिगत रूप से उपयोग नहीं किया है)।

22

यदि आप घटक पुस्तकालय जैसे गैर-टाइपस्क्रिप्ट परियोजनाओं द्वारा उपभोग करने के लिए घटक लिख रहे हैं, तो वे परियोजनाएं प्रोपेप्स आधारित प्रकार सत्यापन से लाभ नहीं उठा पाएंगी।

यदि, हालांकि, आप गैर-टाइपस्क्रिप्ट प्रोजेक्ट द्वारा उपभोग की जाने वाली कुछ भी चीज़ बनाते हैं, तो यह एक व्यर्थ अभ्यास है। यह विशेष रूप से अब है कि टाइपस्क्रिप्ट 2.4 जेएसएक्स बाल प्रकार की जांच (https://github.com/Microsoft/TypeScript/issues/13618) का समर्थन करेगा।

ध्यान रखें कि contextany के रूप में प्रदान किया गया है, contextTypes अभी भी आवश्यक है ताकि वे मान आपके घटक को पास कर सकें।

मुझे यह देखने में दिलचस्पी है कि कोई ऐसा उपकरण है जो propTypes स्वचालित रूप से टाइपस्क्रिप्ट इंटरफेस से संकलन-समय पर उत्पन्न कर सकता है। यह बहुत अच्छा होगा।

+0

अच्छा बिंदु। मैं उन्हें शामिल रखूंगा। – Ralph

+0

क्या आप पहले कथन की व्याख्या कर सकते हैं? – vehsakul

+1

@vehsakul क्षमा करें, स्पष्टीकरण के लिए, यदि आप एक पैकेज लिख रहे हैं जो डेवलपर्स द्वारा स्थापित किया जाएगा जो टाइपस्क्रिप्ट का उपयोग नहीं कर रहे हैं, तो उन्हें अभी भी रन-टाइम पर त्रुटियां प्राप्त करने के लिए प्रोपटाइप की आवश्यकता है। यदि आपकी परियोजना केवल आपके लिए/अन्य टाइपस्क्रिप्ट परियोजनाओं के लिए है, तो आपके प्रोप के लिए टाइपस्क्रिप्ट इंटरफेस पर्याप्त हैं क्योंकि प्रोजेक्ट बस निर्माण नहीं करेगा। –

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