PropTypes और Flow समान चीजों को कवर करते हैं, लेकिन विभिन्न तरीकों का उपयोग कर रहे हैं। PropTypes आपको रनटाइम के दौरान चेतावनी दे सकता है, जो सर्वर से आने वाली विकृत प्रतिक्रियाओं को जल्दी से खोजने में मददगार हो सकता है, हालांकि, फ्लो भविष्य लगता है और जेनेरिक जैसी अवधारणाओं के साथ एक बहुत ही लचीला समाधान है। इसके अलावा, न्यूक्लाइड द्वारा दी जाने वाली स्वतः पूर्णता फ्लो के लिए एक बड़ा प्लस है।
मेरा प्रश्न अब एक नया प्रोजेक्ट शुरू करने के लिए जाने का सबसे अच्छा तरीका है। या यह दोनों प्रवाह और PropTypes का उपयोग करने के लिए एक अच्छा समाधान हो सकता है? दोनों का उपयोग करने में समस्या यह है कि आप बहुत सारे डुप्लिकेट कोड लिखते हैं। यह मेरे द्वारा लिखे गए एक म्यूजिक प्लेयर ऐप का एक उदाहरण है:
export const PlaylistPropType = PropTypes.shape({
next: ItemPropTypes,
current: ItemPropTypes,
history: PropTypes.arrayOf(ItemPropTypes).isRequired
});
export type Playlist = {
next: Item,
current: Item,
history: Array<Item>
};
दोनों परिभाषाओं में मूल रूप से एक ही जानकारी होती है और जब डेटा प्रकार बदला जाता है, तो दोनों परिभाषाओं को अद्यतन करने की आवश्यकता होती है।
मैंने इस बैबल प्लग को PropTypes के प्रकार की घोषणाओं में बदलने के लिए पाया, जो एक समाधान हो सकता है।