Middle
Vertel over utility types in TypeScript.
sobes.tech AI
Antwoord van AI
De utility-types in TypeScript zijn ingebouwde hulptypen die veelvoorkomende operaties op types vereenvoudigen, zoals transformaties, extracties of het uitsluiten van bepaalde eigenschappen. Ze verbeteren de flexibiliteit en leesbaarheid van de code.
Belangrijke utility-types:
Partial<Type>: Maakt een type waarin alle eigenschappen vanTypeoptioneel zijn.// Maakt een type met optionele eigenschappen 'name' en 'age' type PartialUser = Partial<{ name: string; age: number }>;Readonly<Type>: Maakt een type waarin alle eigenschappen vanTypeals alleen-lezen zijn gemarkeerd.// Maakt een type met de eigenschappen 'name' en 'age', alleen-lezen type ReadonlyUser = Readonly<{ name: string; age: number }>;Pick<Type, Keys>: Maakt een type door een subset van eigenschappenKeysuitTypete kiezen.Keyskan een string literal of een unie van string literals zijn.// Maakt een type dat alleen de eigenschap 'name' bevat type UserWithName = Pick<{ name: string; age: number }, 'name'>;Omit<Type, Keys>: Maakt een type door een subset van eigenschappenKeysuitTypeuit te sluiten.// Maakt een type dat alleen de eigenschap 'age' bevat type UserWithoutName = Omit<{ name: string; age: number }, 'name'>;Exclude<UnionType, ExcludedMembers>: Maakt een type door alle leden vanUnionTypeuit te sluiten die toewijsbaar zijn aanExcludedMembers.// Maakt een type dat 'null' uitsluit van de unie type NonNullableString = Exclude<string | null | undefined, null | undefined>;Extract<Type, Union>: Extraheert uitTypealle leden die toewijsbaar zijn aanUnion.// Extraheert 'null' en 'undefined' uit de unie type JustNullOrUndefined = Extract<string | null | undefined, null | undefined>;NonNull<Type>: Sluitnullenundefineduit vanType.// Maakt een type dat 'null' en 'undefined' uitsluit type NonNullStringOrNumber = NonNullable<string | number | null | undefined>;Parameters<Type>: Krijgt de parameter types van een functieTypeals tuple.// Krijgt de parameter types van een functie: [string, number] type FuncParams = Parameters<(a: string, b: number) => void>;ReturnType<Type>: Krijgt het return type van een functieType.// Krijgt het return type van een functie: number type FuncReturn = ReturnType<() => number>;ConstructorParameters<Type>: Extraheert de parameter types van de constructor van een type.// Krijgt de parameter types van de constructor van een klasse: [string, number] type MyClassParams = ConstructorParameters<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }InstanceType<Type>: Extraheert het instantie type van een constructor type.// Extraheert het instantie type van een klasse: MyClass type MyClassInstance = InstanceType<typeof MyClass>; class MyClass { constructor(name: string, age: number) {} }
Het gebruik van utility-types helpt bij het creëren van meer type-veilige, flexibele en onderhoudsvriendelijke code.