![]() |
Creating a union of generic types that extend string in TypeScript involves defining a type that accepts only string literals. This allows for the creation of a type that represents a specific set of strings, providing type safety and flexibility in code. These are the following ways to do that: Table of Content Approach 1: Using an Array of StringsIn this approach, we are using an array of strings, and define a generic type `StringUnion<T extends string>` where `T` represents the string literals. This approach creates a union type from the elements of the array. Example: We Define a generic ‘StringUnion` type accepting string literals. Creates an array of specific strings, then logs each element in a function taking the same type as an argument.
Output: [ 'HTML', 'CSS', 'Javascript' ] Approach 2: Using a Mapped TypeIn this approach we are using a mapped type, define `StringUnion` accepting string literals. Map over each literal, assigning it to itself, resulting in a union of string literals. Use this type to create an array, enabling a union of strings. Example: This example shows that it defines a `StringUnion` type mapping over string literals. Assigns a specific string to a variable. Logs the variable in a function taking the same type as an argument.
Output: JavaScript Approach 3: Using Conditional Types:In TypeScript, using conditional types, a generic type `StringUnion<T>` can be defined to ensure that `T` extends `string`, resulting in a union type of string literals. It checks if `T` extends any type, mapping it to `string`, or else `never`, thus forming the union. Example: In this example we defines a StringUnion type, which resolves to string literals from a given type. It ensures type safety by restricting assignments to only the specified literals.
Output: JavaScript Approach 4: Using Template Literal TypesIn this approach, we use template literal types to concatenate string literals into a union type. Example:
Output: JavaScript Approach 5: Using Type Aliases with Utility TypesUsing type aliases with utility types like Extract allows defining a union type constrained to valid strings. For example, `type MyUnion = Extract<‘a’ | ‘b’ | ‘c’, string>` ensures `MyUnion` only includes `’a’`, `’b’`, or `’c’`, enhancing type correctness and safety. Example:
Output: a Approach 6: Using keyof with ConstraintsUsing the keyof keyword with constraints allows you to create a union of generic types that extend strings. This approach ensures that only the keys of the specified type are included in the union, providing type safety and flexibility. Syntax:type StringUnion<T extends Record<string, any>> = keyof T; Example: The following example demonstrates how to define a union type using keyof with constraints. This approach creates a union of the keys of the given type T, ensuring that only string keys are included.
Output TypeScript |
Reffered: https://www.geeksforgeeks.org
JavaScript |
Type: | Geek |
Category: | Coding |
Sub Category: | Tutorial |
Uploaded by: | Admin |
Views: | 15 |