Chuleta con buscador de tipos de React en TypeScript: props, children, useState, eventos, refs, context, reducers y componentes genéricos, cada uno con código para copiar.
En React con TypeScript sobre todo tipas las props de un componente, y la inferencia se encarga del resto. Describe las props con una interface, usa React.ReactNode para children, pasa un argumento de tipo a useState cuando el valor inicial es demasiado estrecho y elige tipos de evento como React.ChangeEvent<HTMLInputElement> para los handlers. Los archivos con JSX usan la extensión .tsx.
Los tipos más usados
Busca en la chuleta lo que intentas tipar, como un handler de clic o una ref, y copia la línea. Después vienen ejemplos más completos de context, reducers y componentes genéricos.
Añade children: React.ReactNode a la interface de props. ReactNode cubre strings, números, elementos, arrays y null. Usa React.ReactElement solo cuando el componente deba recibir un único elemento JSX.
Un array vacío no le da al comprobador nada de lo que inferir. Pasa el tipo de los elementos: useState<string[]>([]). Lo mismo vale para valores iniciales null, como en useState<User | null>(null).
Usa useRef<HTMLInputElement>(null) y asígnala con ref={inputRef}. Lee inputRef.current comprobando null, porque vale null hasta que React monta el elemento y de nuevo después de desmontarlo.
La documentación actual de React muestra un componente de función que recibe ref como una prop normal y la coloca en el elemento interno. Tipa esa prop como React.Ref<HTMLInputElement>. El código más antiguo envuelve el componente en forwardRef.
Cuando no hay un valor por defecto razonable, usa createContext<Value | null>(null) y envuelve useContext en un pequeño hook que lance un error si el valor es null. Así cada consumidor obtiene un tipo no nulo y un error claro si falta el provider.
Las props opcionales tienen valores por defecto en la firma; children acepta cualquier cosa renderizable.
El hook lanza un error claro fuera del provider y devuelve un valor no nulo dentro de él.
Dentro de cada case la acción se estrecha, así action.item solo existe donde debe.
T queda fijado por los elementos que recibe, así renderItem recibe el tipo correcto.
El padre crea la ref; el hijo la coloca en el input real.
Props
Objeto de props
Props
Children de cualquier tipo
Props
Un solo elemento como hijo
Props
Variante limitada a unos pocos valores
Props
Pasar las props nativas de un botón
Props
Prop de estilo
Props
Prop de callback
State
Estado numérico (inferido)
State
Estado que puede ser null
State
Estado de array vacío
State
Unión de estados
State
Setter pasado como prop
Events
Cambio en un input de texto
Events
Cambio en un select
Events
Clic en un botón
Events
Envío de formulario
Events
Pulsación de tecla
Events
Tipo del handler completo
Refs
Ref a un elemento del DOM
Refs
Ref que guarda el id de un temporizador
Refs
Ref recibida como prop
Context
Context sin valor por defecto
Reducer
Unión de acciones
Todos
Props
Estado
Eventos
Refs
Context
Reducer
Buscar en la chuleta
event, ref, children...
Filtrar por grupo
Copiar
Se muestran {n} de {v} filas
Ninguna fila coincide. Prueba con una palabra más corta.
Empieza gratis · Sin tarjeta de crédito