Middle
Opowiedz o typach utility w TypeScript.
sobes.tech AI
Odpowiedź od AI
Typy narzędziowe w TypeScript to wbudowane typy pomocnicze, które upraszczają ogólne operacje na typach, takie jak transformacje, wyodrębnianie lub wykluczanie określonych właściwości. Zwiększają elastyczność i czytelność kodu.
Główne przydatne typy:
Partial<Type>: Tworzy typ, w którym wszystkie właściwościTypesą opcjonalne.// Tworzy typ z opcjonalnymi właściwościami 'name' i 'age' type PartialUser = Partial<{ name: string; age: number }>;Readonly<Type>: Tworzy typ, w którym wszystkie właściwościTypesą oznaczone jako tylko do odczytu.// Tworzy typ z właściwościami 'name' i 'age', dostępnymi tylko do odczytu type ReadonlyUser = Readonly<{ name: string; age: number }>;Pick<Type, Keys>: Tworzy typ, wybierając zestaw właściwościKeyszType.Keysmoże być literałem łańcuchowym lub unią literałów łańcuchowych.// Tworzy typ zawierający tylko właściwość 'name' type UserWithName = Pick<{ name: string; age: number }, 'name'>;Omit<Type, Keys>: Tworzy typ, wykluczając zestaw właściwościKeyszType.// Tworzy typ zawierający tylko właściwość 'age' type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;Exclude<UnionType, ExcludedMembers>: Tworzy typ, wykluczając zUnionTypewszystkie członków przypisywalne doExcludedMembers.// Tworzy typ wykluczający 'null' z unii type NonNullableString = Exclude<string | null | undefined, null | undefined>;Extract<Type, Union>: Wyodrębnia zTypewszystkie członków przypisywalne doUnion.// Wyodrębnia 'null' i 'undefined' z unii type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;NonNull<Type>: WykluczanulliundefinedzType.// Tworzy typ wykluczający 'null' i 'undefined' type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;Parameters<Type>: Uzyskuje typy parametrów funkcjiTypew formie krotki.// Uzyskuje typy parametrów funkcji: [string, number] type FuncParams = Parameters<(a: string, b: number) => void>;ReturnType<Type>: Uzyskuje typ wartości zwracanej funkcjiType.// Uzyskuje typ wartości zwracanej funkcji: number type FuncReturn = ReturnType<() => number>;ConstructorParameters<Type>: Wyodrębnia typy parametrów konstruktora typu konstruktora.// Uzyskuje typy parametrów konstruktora klasy: [string, number] type MyClassParams = ConstructorParameters<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }InstanceType<Type>: Wyodrębnia typ instancji typu konstruktora.// Wyodrębnia typ instancji klasy: MyClass type MyClassInstance = InstanceType<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }
Użycie typów narzędziowych przyczynia się do tworzenia kodu bardziej bezpiecznego, elastycznego i łatwego w utrzymaniu.