Sobes.tech
Middle

Реците ми о utility типовима у TypeScript-у.

sobes.tech АИ

Одговор од АИ

Tipovi Utility u TypeScript-u – to su ugrađeni pomoćni tipovi koji pojednostavljuju opšte operacije nad tipovima, kao što su transformacije, ekstrakcije ili isključivanja određenih svojstava. Oni povećavaju fleksibilnost i čitljivost koda.

Glavni korisni tipovi:

  • Partial<Type>: Kreira tip u kojem su sva svojstva Type opcionalna.
    // Kreira tip sa opcionalnim svojstvima 'name' i 'age'
    type PartialUser = Partial<{ name: string; age: number }>;
    
  • Readonly<Type>: Kreira tip u kojem su sva svojstva Type samo za čitanje.
    // Kreira tip sa svojstvima 'name' i 'age', dostupnim samo za čitanje
    type ReadonlyUser = Readonly<{ name: string; age: number }>;
    
  • Pick<Type, Keys>: Kreira tip birajući skup svojstava Keys iz Type. Keys može biti niz literala ili unija nizova literala.
    // Kreira tip koji sadrži samo svojstvo 'name'
    type UserWithName = Pick<{ name: string; age: number }, 'name'>;
    
  • Omit<Type, Keys>: Kreira tip isključivanjem skupa svojstava Keys iz Type.
    // Kreira tip koji sadrži samo svojstvo 'age'
    type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;
    
  • Exclude<UnionType, ExcludedMembers>: Kreira tip isključivanjem članova ExcludedMembers iz UnionType.
    // Kreira tip koji isključuje 'null' iz unije
    type NonNullableString = Exclude<string | null | undefined, null | undefined>;
    
  • Extract<Type, Union>: Izvlači iz Type sve članove koji su dodeljivi Union.
    // Izvlači 'null' i 'undefined' iz unije
    type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;
    
  • NonNull<Type>: Isključuje null i undefined iz Type.
    // Kreira tip koji isključuje 'null' i 'undefined'
    type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;
    
  • Parameters<Type>: Dobija tipove parametara funkcije Type kao tuple.
    // Dobija tipove parametara funkcije: [string, number]
    type FuncParams = Parameters<(a: string, b: number) => void>;
    
  • ReturnType<Type>: Dobija tip povratne vrednosti funkcije Type.
    // Dobija tip povratne vrednosti funkcije: number
    type FuncReturn = ReturnType<() => number>;
    
  • ConstructorParameters<Type>: Ekstrahuje tipove parametara konstruktora tipa konstruktora.
    // Dobija tipove parametara konstruktora klase: [string, number]
    type MyClassParams = ConstructorParameters<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    
  • InstanceType<Type>: Ekstrahuje tip instance tipa konstruktora.
    // Ekstrahuje tip instance klase: MyClass
    type MyClassInstance = InstanceType<typeof MyClass>;
    
    class MyClass {
        constructor(name: string, age: number) {}
    }
    

Korišćenje utility tipova doprinosi stvaranju sigurnijeg, fleksibilnijeg i lako održivog koda.