Les types utilitaires intégrés de TypeScript et les mots-clés qui les accompagnent, regroupés par fonction : remodeler un objet, filtrer une union, décrire une fonction, transformer une chaîne littérale et capturer des types à partir de valeurs. Chaque ligne montre le type et un alias réel que vous écririez.
Les types utilitaires sont des fonctions génériques pour les types : elles prennent un ou deux types et en renvoient un nouveau, pour que vous n'ayez pas à écrire chaque forme à la main. Ils excellent pour les types dérivés, quand la source de vérité est un autre type ou une valeur et que vous voulez que vos types la suivent automatiquement. La règle pratique : dérivez plutôt que de dupliquer — si la source change, le type dérivé suit.
Tableau de référence · 22 entrées
Types utilitaires TypeScriptExplained
22 of 22 rows
Forme des objets
T dont toutes les propriétés deviennent optionnelles.
type Update = Partial<User>
T dont toutes les propriétés deviennent obligatoires.
type Strict = Required<Opts>
T dont toutes les propriétés deviennent readonly.
type Frozen = Readonly<User>
T où seules les clés de K sont conservées.
type Preview = Pick<User, "id" | "name">
T dont les clés de K sont retirées.
type SafeUser = Omit<User, "password">
Un objet dont les clés sont K et les valeurs V.
type Scores = Record<string, number>
Filtrage des unions
L'union U sans les membres assignables à X.
type NoNull = Exclude<T, null>
Les membres de U qui sont assignables à X.
type OnlyStr = Extract<T, string>
T sans null ni undefined.
type Def = NonNullable<T>
Types de fonctions
Un tuple des types des paramètres de la fonction F.
type P = Parameters<typeof fn>
Le type renvoyé par la fonction F.
type R = ReturnType<typeof fn>
Un tuple des types des paramètres du constructeur F.
type C = ConstructorParameters<typeof Date>
Le type d'instance produit par le constructeur F.
type D = InstanceType<typeof Date>
Le type auquel une Promise se résout, récursivement.
type Data = Awaited<Promise<User>>
Transformations de littéraux de chaîne
Le littéral de chaîne S en majuscules.
type A = Uppercase<"abc"> // "ABC"
Le littéral de chaîne S en minuscules.
type B = Lowercase<"ABC"> // "abc"
S avec le premier caractère en majuscule.
type C = Capitalize<"abc"> // "Abc"
S avec le premier caractère en minuscule.
type D = Uncapitalize<"Abc"> // "aBc"
Mots-clés associés
Une union des clés de propriétés du type objet T.
type K = keyof User
Le type d'une valeur, sans le réécrire.
type Config = typeof defaults
Capture un type dans un conditionnel pour le réutiliser.
type El<T> = T extends Array<infer I> ? I : never
Choisit le type X ou Y selon que T est assignable à U.