Un cheat sheet consultabile dei tipi di React TypeScript: props, children, useState, eventi, ref, context, reducer e componenti generici, ognuno con codice da copiare.
In React con TypeScript tipizzi soprattutto le props di un componente, e l'inferenza si occupa del resto. Descrivi le props con un'interface, usa React.ReactNode per i children, passa un argomento di tipo a useState quando il valore iniziale è troppo ristretto e scegli tipi di evento come React.ChangeEvent<HTMLInputElement> per gli handler. I file con JSX usano l'estensione .tsx.
I tipi più usati
Cerca nel cheat sheet la cosa che vuoi tipizzare, per esempio un handler di clic o un ref, e copia la riga. Più sotto trovi esempi completi e più lunghi per context, reducer e componenti generici.
Aggiungi children: React.ReactNode all'interface delle props. ReactNode copre stringhe, numeri, elementi, array e null. Usa React.ReactElement solo quando il componente deve ricevere un singolo elemento JSX.
Un array vuoto non dà al type checker nulla da cui dedurre il tipo. Passa il tipo degli elementi: useState<string[]>([]). Lo stesso vale per i valori iniziali null, come in useState<User | null>(null).
Chiama useRef<HTMLInputElement>(null) e collegalo con ref={inputRef}. Leggi inputRef.current con un controllo su null, perché vale null finché React non monta l'elemento e di nuovo dopo lo smontaggio.
La documentazione attuale di React mostra un function component che riceve ref come una normale prop e lo applica all'elemento interno. Tipizza quella prop come React.Ref<HTMLInputElement>. Il codice più vecchio invece avvolge il componente in forwardRef.
Quando non esiste un valore predefinito sensato, usa createContext<Value | null>(null) e avvolgi useContext in un piccolo hook che lancia un errore se il valore è null. Così ogni consumer ottiene un tipo non null e un errore chiaro se manca un provider.
Le props facoltative hanno valori predefiniti nella firma; children accetta qualsiasi cosa renderizzabile.
L'hook lancia un errore chiaro fuori dal provider e restituisce un valore non null al suo interno.
Dentro ogni case l'azione viene ristretta, quindi action.item esiste solo dove deve esistere.
T è fissato dagli elementi che passa il chiamante, quindi renderItem riceve il tipo giusto.
Il genitore crea il ref; il figlio lo applica all'input vero e proprio.
Props
Oggetto delle props
Props
Children di qualsiasi tipo
Props
Un solo elemento come figlio
Props
Variante limitata a pochi valori
Props
Inoltrare le props native del pulsante
Props
Prop di stile
Props
Prop di callback
State
State numerico (dedotto)
State
State che può essere null
State
State con array vuoto
State
Union di stati
State
Setter passato come prop
Events
Modifica di un input di testo
Events
Modifica di una select
Events
Clic su un pulsante
Events
Invio di un form
Events
Pressione di un tasto
Events
Tipo dell'intero handler
Refs
Ref a un elemento del DOM
Refs
Ref che contiene l'id di un timer
Refs
Ref ricevuto come prop
Context
Context senza valore predefinito
Reducer
Union di azioni
Tutti
Props
State
Eventi
Ref
Context
Reducer
Cerca nel cheat sheet
event, ref, children...
Filtra per gruppo
Copia
{n} di {v} righe mostrate
Nessuna riga corrisponde. Prova una parola più corta.
Inizia gratis · Nessuna carta di credito richiesta