PropTypes — это механизм проверки типов (type checking) для пропсов (props) в React-компонентах. Он позволяет явно указать, какие типы данных и структуры ожидаются в пропсах компонента, что помогает выявлять ошибки на ранних этапах разработки.
import PropTypes from 'prop-types';
function UserCard({ name, age, isVerified }) {
return (
<div>
<h2>{name}</h2>
<p>Age: {age}</p>
{isVerified && <span>✓ Verified</span>}
</div>
);
}
UserCard.propTypes = {
name: PropTypes.string.isRequired, // Обязательная строка
age: PropTypes.number, // Необязательное число
isVerified: PropTypes.bool // Булево значение
};
PropTypes.string
— строкаPropTypes.number
— числоPropTypes.bool
— булево значениеPropTypes.array
— массивPropTypes.object
— объектPropTypes.func
— функцияPropTypes.node
— React-нода (что-то рендеримое)PropTypes.element
— React-элементPropTypes.instanceOf(Class)
— экземпляр классаMyComponent.propTypes = {
optionalArrayOf: PropTypes.arrayOf(PropTypes.number), // Массив чисел
optionalObjectWithShape: PropTypes.shape({ // Объект с определенной структурой
color: PropTypes.string,
fontSize: PropTypes.number
}),
requiredFunc: PropTypes.func.isRequired, // Обязательная функция
customValidator: function(props, propName, componentName) {
// Кастомная валидация
if (!/^[A-Z]/.test(props[propName])) {
return new Error('Должно начинаться с заглавной буквы!');
}
}
};
PropTypes — это встроенный механизм React для проверки типов пропсов, который улучшает надежность и поддерживаемость кода, особенно в больших командах. Хотя сегодня многие предпочитают TypeScript, PropTypes остаются полезным инструментом в проектах без TypeScript.