PropTypes와 Flow는 비슷한 것을 다루지 만 다른 접근 방식을 사용합니다. PropTypes는 런타임 중에 경고를 제공 할 수 있으며, 이는 서버 등에서 오는 잘못된 응답을 신속하게 찾는 데 도움이 될 수 있습니다. 그러나 Flow는 미래인 것 같고 제네릭과 같은 개념을 가진 매우 유연한 솔루션입니다. 또한 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>
};
두 정의 모두 기본적으로 동일한 정보를 포함하며 데이터 유형이 변경되면 두 정의를 모두 업데이트해야합니다.
유형 선언을 PropTypes로 변환하는 이 babel 플러그인 을 찾았습니다 .