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 svojstvaTypeopcionalna.// Kreira tip sa opcionalnim svojstvima 'name' i 'age' type PartialUser = Partial<{ name: string; age: number }>;Readonly<Type>: Kreira tip u kojem su sva svojstvaTypesamo 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 svojstavaKeysizType.Keysmož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 svojstavaKeysizType.// Kreira tip koji sadrži samo svojstvo 'age' type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;Exclude<UnionType, ExcludedMembers>: Kreira tip isključivanjem članovaExcludedMembersizUnionType.// Kreira tip koji isključuje 'null' iz unije type NonNullableString = Exclude<string | null | undefined, null | undefined>;Extract<Type, Union>: Izvlači izTypesve članove koji su dodeljiviUnion.// Izvlači 'null' i 'undefined' iz unije type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;NonNull<Type>: IsključujenulliundefinedizType.// Kreira tip koji isključuje 'null' i 'undefined' type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;Parameters<Type>: Dobija tipove parametara funkcijeTypekao tuple.// Dobija tipove parametara funkcije: [string, number] type FuncParams = Parameters<(a: string, b: number) => void>;ReturnType<Type>: Dobija tip povratne vrednosti funkcijeType.// 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.