Typescript
Utility Types
Types
Réutilisation
Generiques
Utiliser les utility types TypeScript pour réutiliser et transformer les types existants efficacement.
Introduction aux Utility types
Les Utility types permettent de transformer des types existants sans les réécrire
À retenir : DRY (Don't Repeat Yourself) s'applique aussi aux types !
Pick - sélectionner des propriétés
interface User { id: number; name: string; email: string; active: boolean; } type UserPreview = Pick<User, 'id' | 'name'>; // { id: number; name: string; }
Omit - exclure des propriétés
type UserPublic = Omit<User, 'email'>; // { id: number; name: string; active: boolean; }
Record - créer un type avec clés
type Status = 'pending' | 'complete' | 'failed'; type StatusCount = Record<Status, number>; // { pending: number; complete: number; failed: number; } const counts: StatusCount = { pending: 5, complete: 10, failed: 2 };
Partial et Required
// Partial = toutes les props optionnelles type PartialUser = Partial<User>; // Required = toutes les props obligatoires type RequiredUser = Required<User>;
Readonly et typeof
// Readonly = rendre immutable type ReadonlyUser = Readonly<User>; // typeof = obtenir le type d'une variable const user = { name: 'Alice', age: 25 }; type UserType = typeof user; // { name: string; age: number; }
Combiner les Utility types
type SafeUser = Partial<Pick<User, 'name' | 'email'>>; // { name?: string; email?: string; }