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ā visiTypeī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ā visasTypeī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ēlotiesKeysīpašības noType.Keysvar 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ēdzKeysīpašības noType.// Izveido tipu, kas satur tikai īpašību 'age' type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;Exclude<UnionType, ExcludedMembers>: Izslēdz noUnionTypevisus locekļus, kas ir assignable uzExcludedMembers.// Izslēdz 'null' no apvienojuma type NonNullableString = Exclude<string | null | undefined, null | undefined>;Extract<Type, Union>: Izvelk noTypevisus locekļus, kas ir assignable uzUnion.// Izvelk 'null' un 'undefined' no apvienojuma type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;NonNull<Type>: IzslēdznullunundefinednoType.// Izveido tipu, kas neietver 'null' un 'undefined' type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;Parameters<Type>: Saņem funkcijasTypeparametru tipus kā tūsku.// Saņem funkcijas parametru tipus: [string, number] type FuncParams = Parameters<(a: string, b: number) => void>;ReturnType<Type>: Saņem funkcijasTypeatgrieš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.