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.