Sobes.tech
Middle

Pastāstiet man par utility tipus TypeScript.

sobes.tech AI

Atbilde no AI

TypeScript utilitārie tipi ir iebūvēti palīgtipi, kas vienkāršo kopējas operācijas ar tipiem, piemēram, pārveidošanu, izvilkšanu vai izslēgšanu noteiktām īpašībām. Tie uzlabo koda elastību un lasāmību.

Galvenie noderīgie tipi:

  • Partial<Type>: Izveido tipu, kurā visi Type īpašības ir obligātas.
    // Izveido tipu ar neobligātām īpašībām 'name' un 'age'
    type PartialUser = Partial<{ name: string; age: number }>;
    
  • Readonly<Type>: Izveido tipu, kurā visas Type īpašības ir tikai lasāmas.
    // Izveido tipu ar īpašībām 'name' un 'age', kas ir tikai lasāmas
    type ReadonlyUser = Readonly<{ name: string; age: number }>;
    
  • Pick<Type, Keys>: Izveido tipu, izvēloties Keys īpašības no Type. Keys var būt virkne ar rakstzīmēm vai to apvienojums.
    // Izveido tipu, kas satur tikai īpašību 'name'
    type UserWithName = Pick<{ name: string; age: number }, 'name'>;
    
  • Omit<Type, Keys>: Izslēdz Keys īpašības no Type.
    // Izveido tipu, kas satur tikai īpašību 'age'
    type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;
    
  • Exclude<UnionType, ExcludedMembers>: Izslēdz no UnionType visus locekļus, kas ir assignable uz ExcludedMembers.
    // Izslēdz 'null' no apvienojuma
    type NonNullableString = Exclude<string | null | undefined, null | undefined>;
    
  • Extract<Type, Union>: Izvelk no Type visus locekļus, kas ir assignable uz Union.
    // Izvelk 'null' un 'undefined' no apvienojuma
    type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;
    
  • NonNull<Type>: Izslēdz null un undefined no Type.
    // Izveido tipu, kas neietver 'null' un 'undefined'
    type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;
    
  • Parameters<Type>: Saņem funkcijas Type parametru tipus kā tūsku.
    // Saņem funkcijas parametru tipus: [string, number]
    type FuncParams = Parameters<(a: string, b: number) => void>;
    
  • ReturnType<Type>: Saņem funkcijas Type atgriešanas vērtības tipu.
    // Saņem funkcijas atgriešanas vērtības tipu: number
    type FuncReturn = ReturnType<() => number>;
    
  • ConstructorParameters<Type>: Izvelk konstruktoru parametru tipus konstruktoru tipam.
    // Saņem klases konstruktoru parametru tipus: [string, number]
    type MyClassParams = ConstructorParameters<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    
  • InstanceType<Type>: Izvelk konstruktoru tipa instanci.
    // Izvelk klases instances tipu: MyClass
    type MyClassInstance = InstanceType<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    

Utilitāro tipu izmantošana veicina drošāku, elastīgāku un vieglāk uzturamu kodu.