PropTypes และ Flow ครอบคลุมสิ่งที่คล้ายกัน แต่ใช้วิธีการที่แตกต่างกัน PropTypes สามารถให้คำเตือนคุณระหว่างรันไทม์ซึ่งจะเป็นประโยชน์ในการค้นหาการตอบสนองที่ผิดรูปแบบที่มาจากเซิร์ฟเวอร์เป็นต้นอย่างไรก็ตาม Flow ดูเหมือนจะเป็นอนาคตและด้วยแนวคิดเช่น generics เป็นโซลูชันที่ยืดหยุ่นมาก นอกจากนี้การเติมข้อความอัตโนมัติที่นำเสนอโดย Nuclide ก็เป็นข้อดีอย่างมากสำหรับ Flow
คำถามของฉันตอนนี้คือวิธีที่ดีที่สุดในการเริ่มโครงการใหม่ หรืออาจเป็นทางออกที่ดีในการใช้ทั้ง Flow และ 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>
};
โดยทั่วไปคำจำกัดความทั้งสองจะมีข้อมูลที่เหมือนกันและเมื่อมีการเปลี่ยนแปลงชนิดข้อมูลจำเป็นต้องอัปเดตคำจำกัดความทั้งสอง
ฉันพบปลั๊กอิน Babelนี้เพื่อแปลงการประกาศประเภทเป็น PropTypes ซึ่งอาจเป็นวิธีแก้ปัญหา