Middle
Parlez-moi des types utilitaires en TypeScript.
sobes.tech IA
Réponse de l'IA
Les types utilitaires en TypeScript sont des types auxiliaires intégrés qui simplifient les opérations courantes sur les types, telles que les transformations, extractions ou exclusions de propriétés spécifiques. Ils améliorent la flexibilité et la lisibilité du code.
Principaux types utiles:
Partial<Type>: Crée un type où toutes les propriétés deTypesont optionnelles.// Crée un type avec les propriétés optionnelles 'name' et 'age' type PartialUser = Partial<{ name: string; age: number }>;Readonly<Type>: Crée un type où toutes les propriétés deTypesont marquées comme lecture seule.// Crée un type avec les propriétés 'name' et 'age', accessibles en lecture seule type ReadonlyUser = Readonly<{ name: string; age: number }>;Pick<Type, Keys>: Crée un type en sélectionnant un ensemble de propriétésKeysdeType.Keyspeut être un littéral de chaîne ou une union de littéraux de chaîne.// Crée un type contenant uniquement la propriété 'name' type UserWithName = Pick<{ name: string; age: number }, 'name'>;Omit<Type, Keys>: Crée un type en excluant un ensemble de propriétésKeysdeType.// Crée un type contenant uniquement la propriété 'age' type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;Exclude<UnionType, ExcludedMembers>: Crée un type en excluant deUnionTypetous les membres assignables àExcludedMembers.// Crée un type excluant 'null' du union type NonNullableString = Exclude<string | null | undefined, null | undefined>;Extract<Type, Union>: Extrait deTypetous les membres assignables àUnion.// Extrait 'null' et 'undefined' du union type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;NonNull<Type>: ExclutnulletundefineddeType.// Crée un type excluant 'null' et 'undefined' type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;Parameters<Type>: Obtient les types de paramètres de la fonctionTypesous forme de tuple.// Obtient les types de paramètres de la fonction : [string, number] type FuncParams = Parameters<(a: string, b: number) => void>;ReturnType<Type>: Obtient le type de la valeur de retour de la fonctionType.// Obtient le type de la valeur de retour de la fonction : number type FuncReturn = ReturnType<() => number>;ConstructorParameters<Type>: Extrait les types de paramètres du constructeur du type constructeur.// Obtient les types de paramètres du constructeur de la classe : [string, number] type MyClassParams = ConstructorParameters<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }InstanceType<Type>: Extrait le type d'instance du type constructeur.// Extrait le type d'instance de la classe : MyClass type MyClassInstance = InstanceType<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }
L'utilisation des types utilitaires contribue à créer un code plus sûr en types, flexible et facile à maintenir.