Skip to content

Tipi di utilità di TypeScript spiegati

I tipi di utilità integrati di TypeScript e le parole chiave che li accompagnano, raggruppati per funzione: rimodellare un oggetto, filtrare una union, descrivere una funzione, trasformare una stringa letterale e catturare tipi dai valori. Ogni riga mostra il tipo e un alias reale che scriveresti.

I tipi di utilità sono funzioni generiche per i tipi: prendono uno o due tipi e ne restituiscono uno nuovo, così non devi scrivere a mano ogni forma. Brillano per i tipi derivati, quando la fonte di verità è un altro tipo o un valore e vuoi che i tuoi tipi lo seguano automaticamente. La regola pratica è derivare anziché duplicare: se cambi la fonte, il tipo derivato segue.

Tabella di riferimento · 22 voci
22 of 22 rows
Forma degli oggetti
T con ogni proprietà resa opzionale.type Update = Partial<User>
T con ogni proprietà resa obbligatoria.type Strict = Required<Opts>
T con ogni proprietà resa readonly.type Frozen = Readonly<User>
T con sole le chiavi in K mantenute.type Preview = Pick<User, "id" | "name">
T con le chiavi in K rimosse.type SafeUser = Omit<User, "password">
Un oggetto le cui chiavi sono K e i cui valori sono V.type Scores = Record<string, number>
Filtraggio delle union
L'union U con i membri assegnabili a X rimossi.type NoNull = Exclude<T, null>
I membri di U assegnabili a X.type OnlyStr = Extract<T, string>
T con null e undefined rimossi.type Def = NonNullable<T>
Tipi di funzione
Una tupla dei tipi di parametro della funzione F.type P = Parameters<typeof fn>
Il tipo restituito dalla funzione F.type R = ReturnType<typeof fn>
Una tupla dei tipi di parametro del costruttore F.type C = ConstructorParameters<typeof Date>
Il tipo di istanza prodotto dal costruttore F.type D = InstanceType<typeof Date>
Il tipo a cui una Promise si risolve, in modo ricorsivo.type Data = Awaited<Promise<User>>
Trasformazioni di stringhe letterali
La stringa letterale S in maiuscolo.type A = Uppercase<"abc"> // "ABC"
La stringa letterale S in minuscolo.type B = Lowercase<"ABC"> // "abc"
S con il primo carattere in maiuscolo.type C = Capitalize<"abc"> // "Abc"
S con il primo carattere in minuscolo.type D = Uncapitalize<"Abc"> // "aBc"
Parole chiave correlate
Un'unione delle chiavi delle proprietà del tipo oggetto T.type K = keyof User
Il tipo di un valore, senza riscriverlo.type Config = typeof defaults
Cattura un tipo dentro un conditional per riusarlo.type El<T> = T extends Array<infer I> ? I : never
Sceglie il tipo X o Y in base al fatto che T sia assegnabile a U.type IsStr<T> = T extends string ? true : false