Middle
Vorbiți despre tipurile utility în TypeScript.
sobes.tech AI
Răspuns de la AI
Tipurile utilitare din TypeScript sunt tipuri auxiliare încorporate care simplifică operațiile comune asupra tipurilor, cum ar fi transformările, extragerile sau excluderea anumitor proprietăți. Ele sporesc flexibilitatea și lizibilitatea codului.
Tipurile utile principale:
Partial<Type>: Creează un tip în care toate proprietățile luiTypesunt opționale.// Creează un tip cu proprietățile opționale 'name' și 'age' type PartialUser = Partial<{ name: string; age: number }>;Readonly<Type>: Creează un tip în care toate proprietățile luiTypesunt marcate ca doar pentru citire.// Creează un tip cu proprietățile 'name' și 'age', disponibile doar pentru citire type ReadonlyUser = Readonly<{ name: string; age: number }>;Pick<Type, Keys>: Creează un tip selectând un set de proprietățiKeysdinType.Keyspoate fi un literal de șir sau o uniune de literale de șir.// Creează un tip conținând doar proprietatea 'name' type UserWithName = Pick<{ name: string; age: number }, 'name'>;Omit<Type, Keys>: Creează un tip excludând un set de proprietățiKeysdinType.// Creează un tip conținând doar proprietatea 'age' type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;Exclude<UnionType, ExcludedMembers>: Creează un tip excludând dinUnionTypetoate membrii atribuiți luiExcludedMembers.// Creează un tip care exclude 'null' din uniune type NonNullableString = Exclude<string | null | undefined, null | undefined>;Extract<Type, Union>: Extrage dinTypetoți membrii atribuiți luiUnion.// Extrage 'null' și 'undefined' din uniune type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;NonNull<Type>: ExcludenullșiundefineddinType.// Creează un tip care exclude 'null' și 'undefined' type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;Parameters<Type>: Obține tipurile parametrilor funcțieiTypesub formă de tuple.// Obține tipurile parametrilor funcției: [string, number] type FuncParams = Parameters<(a: string, b: number) => void>;ReturnType<Type>: Obține tipul valorii de întoarcere a funcțieiType.// Obține tipul valorii de întoarcere a funcției: number type FuncReturn = ReturnType<() => number>;ConstructorParameters<Type>: Extrage tipurile parametrilor constructorului tipului constructor.// Obține tipurile parametrilor constructorului clasei: [string, number] type MyClassParams = ConstructorParameters<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }InstanceType<Type>: Extrage tipul de instanță al tipului constructor.// Extrage tipul de instanță al clasei: MyClass type MyClassInstance = InstanceType<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }
Utilizarea tipurilor utilitare contribuie la crearea unui cod mai sigur, flexibil și ușor de întreținut.