Middle
Разкажете за utility типовете в TypeScript.
sobes.tech AI
Отговор от AI
Типове Utility в TypeScript – това са вградени помощни типове, които опростяват общите операции върху типове, като преобразувания, извличания или изключвания на определени свойства. Те повишават гъвкавостта и четливостта на кода.
Основни полезни типове:
Partial<Type>: Създава тип, в който всички свойства наTypeса опционални.// Създава тип с опционални свойства 'name' и 'age' type PartialUser = Partial<{ name: string; age: number }>;Readonly<Type>: Създава тип, в който всички свойства наTypeса само за четене.// Създава тип с свойства 'name' и 'age', достъпни само за четене type ReadonlyUser = Readonly<{ name: string; age: number }>;Pick<Type, Keys>: Създава тип, като избира набор от свойстваKeysотType.Keysможе да бъде низов литерал или обединение от низови литерали.// Създава тип, съдържащ само свойството 'name' type UserWithName = Pick<{ name: string; age: number }, 'name'>;Omit<Type, Keys>: Създава тип, като изключва набор от свойстваKeysотType.// Създава тип, съдържащ само свойството 'age' type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;Exclude<UnionType, ExcludedMembers>: Създава тип, като изключва членове отUnionType, които могат да бъдат приравнени къмExcludedMembers.// Създава тип, който изключва 'null' от обединението type NonNullableString = Exclude<string | null | undefined, null | undefined>;Extract<Type, Union>: Извлича отTypeвсички членове, които могат да бъдат приравнени къмUnion.// Извлича 'null' и 'undefined' от обединението type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;NonNull<Type>: ИзключваnullиundefinedотType.// Създава тип, който изключва 'null' и 'undefined' type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;Parameters<Type>: Получава типове параметри на функцияTypeкато кортеж.// Получава типове параметри на функция: [string, number] type FuncParams = Parameters<(a: string, b: number) => void>;ReturnType<Type>: Получава тип на върнатата стойност на функцияType.// Получава тип на върнатата стойност на функция: number type FuncReturn = ReturnType<() => number>;ConstructorParameters<Type>: Извлича типове на параметри на конструктора на тип конструктор.// Получава типове на параметри на конструктора на класа: [string, number] type MyClassParams = ConstructorParameters<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }InstanceType<Type>: Извлича типа на инстанцията на типа на конструктора.// Извлича типа на инстанцията на класа: MyClass type MyClassInstance = InstanceType<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }
Използването на utility типове допринася за създаването на по-безопасен, гъвкав и лесен за поддръжка код.