PropTypes ve Flow benzer şeyleri kapsar ancak farklı yaklaşımlar kullanır. PropTypes, çalışma zamanı sırasında size uyarılar verebilir ve bu, bir sunucudan vb. Gelen hatalı biçimlendirilmiş yanıtları hızlı bir şekilde bulmanıza yardımcı olabilir. Ancak, Flow gelecek gibi görünüyor ve jenerikler gibi kavramlarla çok esnek bir çözüm. Ayrıca Nuclide tarafından sunulan otomatik tamamlama, Flow için büyük bir artıdır.
Şimdi sorum, yeni bir projeye başlarken gitmenin en iyi yolu hangisi? Veya hem Flow hem de PropTypes kullanmak iyi bir çözüm olabilir mi? Her ikisini de kullanmanın sorunu, çok sayıda yinelenen kod yazmanızdır. Bu yazdığım bir müzik çalar uygulamasına bir örnek:
export const PlaylistPropType = PropTypes.shape({
next: ItemPropTypes,
current: ItemPropTypes,
history: PropTypes.arrayOf(ItemPropTypes).isRequired
});
export type Playlist = {
next: Item,
current: Item,
history: Array<Item>
};
Her iki tanım da temelde aynı bilgileri içerir ve veri türü değiştirildiğinde her iki tanımın da güncellenmesi gerekir.
Tür bildirimlerini PropTypes'e dönüştürmek için bu babel eklentisini buldum, bu bir çözüm olabilir.