Middle
Povězte mi o utility typech v TypeScriptu.
sobes.tech AI
Odpověď od AI
Utility typy v TypeScriptu – jsou vestavěné pomocné typy, které zjednodušují obecné operace nad typy, jako jsou převody, extrakce nebo vyloučení určitých vlastností. Zvyšují flexibilitu a čitelnost kódu.
Hlavní užitečné typy:
Partial<Type>: Vytváří typ, ve kterém jsou všechny vlastnostiTypevolitelné.// Vytvoří typ s volitelnými vlastnostmi 'name' a 'age' type PartialUser = Partial<{ name: string; age: number }>;Readonly<Type>: Vytváří typ, ve kterém jsou všechny vlastnostiTypepouze pro čtení.// Vytvoří typ s vlastnostmi 'name' a 'age', dostupnými pouze pro čtení type ReadonlyUser = Readonly<{ name: string; age: number }>;Pick<Type, Keys>: Vytváří typ výběrem sady vlastnostíKeyszType.Keysmůže být řetězcový literál nebo sjednocení řetězcových literálů.// Vytvoří typ obsahující pouze vlastnost 'name' type UserWithName = Pick<{ name: string; age: number }, 'name'>;Omit<Type, Keys>: Vytváří typ vyloučením sady vlastnostíKeyszType.// Vytvoří typ obsahující pouze vlastnost 'age' type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;Exclude<UnionType, ExcludedMembers>: Vytváří typ vyloučením členůExcludedMemberszUnionType.// Vytvoří typ, který vylučuje 'null' z unie type NonNullableString = Exclude<string | null | undefined, null | undefined>;Extract<Type, Union>: Extrahuje zTypevšechny členy, které jsou přiřaditelné kUnion.// Extrahuje 'null' a 'undefined' z unie type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;NonNull<Type>: VylučujenullaundefinedzType.// Vytváří typ, který vylučuje 'null' a 'undefined' type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;Parameters<Type>: Získává typy parametrů funkceTypejako n-tici.// Získává typy parametrů funkce: [string, number] type FuncParams = Parameters<(a: string, b: number) => void>;ReturnType<Type>: Získává typ návratové hodnoty funkceType.// Získává typ návratové hodnoty funkce: number type FuncReturn = ReturnType<() => number>;ConstructorParameters<Type>: Extrahuje typy parametrů konstruktoru typu konstruktor.// Získává typy parametrů konstruktoru třídy: [string, number] type MyClassParams = ConstructorParameters<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }InstanceType<Type>: Extrahuje typ instance typu konstruktoru.// Extrahuje typ instance třídy: MyClass type MyClassInstance = InstanceType<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }
Použití utility typů přispívá k tvorbě bezpečnějšího, flexibilnějšího a snadno udržovatelného kódu.