React proporciona una forma de validar el tipo de las props de un componente en tiempo de ejecución y en modo desarrollo. Esto es útil para asegurarnos de que los componentes se están utilizando correctamente.
El paquete se llama prop-types
y se puede instalar con npm install prop-types
.
import PropTypes from "prop-types"
function App(props) {
return <h1>{props.title}</h1>
}
App.propTypes = {
title: PropTypes.string.isRequired,
}
En este ejemplo, estamos validando que la prop title
sea de tipo string
y que sea obligatoria.
Existen una colección de PropTypes ya definidas para ayudarte a comprobar los tipos de las props más comunes:
PropTypes.number // número
PropTypes.string // string
PropTypes.array // array
PropTypes.object // objeto
PropTypes.bool // un booleano
PropTypes.func // función
PropTypes.node // cualquier cosa renderizable en React, como un número, string, elemento, array, etc.
PropTypes.element // un elemento React
PropTypes.symbol // un Symbol de JavaScript
PropTypes.any // cualquier tipo de dato
A todas estas se le puede añadir la propiedad isRequired
para indicar que es obligatoria.
Otra opción es usar TypeScript, un lenguaje de programación que compila a JavaScript y que ofrece validación de tipos de forma estática. Ten en cuenta que mientras que TypeScript comprueba los tipos en tiempo de compilación, las PropTypes lo hacen en tiempo de ejecución.