Например, в React есть возможность описать формат пропсов (props) с помощью библиотеки PropType.
SomeComponent.propTypes = {
searchState: PropTypes.oneOf([
SEARCH_STATE_MAIN,
SEARCH_STATE_TYPE1,
SEARCH_STATE_TYPE2,
SEARCH_STATE_TYPE3,
SEARCH_STATE_SEARCH_RESULTS]).isRequired,
title: PropTypes.string.isRequired,
description: PropTypes.string,
items: PropTypes.arrayOf(PropTypes.object),
serverApi: PropTypes.instanceOf(ServerApi),
onUpdateState: PropTypes.func.isRequired,
};
А можно ли как-то проверять JSON? Это нужно, чтобы в случае прихода невалидных данных я мог на самом раннем этапе бросить эксепшен, а не узнать об ошибке где-то далеко в компонентах.