A type alias for unions lets you give a name to a group of types. This makes your code easier to read and reuse.
Type alias for unions in Typescript
type AliasName = Type1 | Type2 | Type3;
The type keyword creates a new name for a type.
The vertical bar | means "or" between types.
ID can be a number or a string.type ID = number | string;
Status can be one of three specific words.type Status = 'success' | 'error' | 'loading';
Result can be true, false, or no value.type Result = boolean | null | undefined;
This program defines a type alias Pet for three pet names. The function greetPet accepts only these names and prints a greeting.
type Pet = 'dog' | 'cat' | 'fish'; function greetPet(pet: Pet) { console.log(`Hello, dear ${pet}!`); } greetPet('dog'); greetPet('cat');
Type aliases do not create new types, they just name existing ones.
Union types let you accept multiple types but still keep type safety.
Type alias for unions gives a name to multiple possible types.
Use type Alias = Type1 | Type2; to create one.
This helps make code clearer and easier to maintain.
Practice
What does a type alias for unions in TypeScript do?
Solution
Step 1: Understand the purpose of type alias
A type alias lets you give a name to a type or group of types for easier use.Step 2: Understand union types
A union type means a value can be one of several types, like string or number.Final Answer:
Gives a single name to multiple possible types -> Option CQuick Check:
Type alias for unions = single name for multiple types [OK]
- Thinking it creates variables instead of naming types
- Confusing union with function return types
- Assuming it declares constants
Which of the following is the correct syntax to create a type alias MyType that can be either string or number?
Solution
Step 1: Recall correct keyword for type alias
Use the keywordtypeto create a type alias, notalias.Step 2: Use union operator for multiple types
The union operator is|, not&. Sostring | numberis correct.Final Answer:
type MyType = string | number; -> Option AQuick Check:
type + union (|) = correct syntax [OK]
- Using 'alias' instead of 'type'
- Using '&' instead of '|' for unions
- Mixing syntax from other languages
What will be the output of the following TypeScript code?
type Status = "success" | "error";
function printStatus(s: Status) {
console.log(s);
}
printStatus("success");
printStatus("error");
// printStatus("pending"); // Uncommenting this line causes errorSolution
Step 1: Understand the type alias Status
Status can only be "success" or "error" strings.Step 2: Check function calls
Calling printStatus with "success" and "error" prints those values. "pending" is invalid and commented out.Final Answer:
success\nerror -> Option DQuick Check:
Valid union values print correctly [OK]
- Assuming invalid union values print without error
- Thinking it causes runtime error
- Ignoring commented invalid call
Identify the error in this TypeScript code using a type alias for unions:
type ID = number | string; let userId: ID = true;
Solution
Step 1: Check type alias definition
ID allows only number or string values.Step 2: Check assigned value type
Assigningtrueis boolean, which is not allowed by the union.Final Answer:
Type 'boolean' is not assignable to type 'number | string' -> Option AQuick Check:
Assigning wrong type causes error [OK]
- Thinking union allows any type
- Ignoring type mismatch errors
- Confusing syntax errors with type errors
Given the type alias type Response = { status: "ok"; data: string } | { status: "error"; error: string };, which of the following objects matches the Response type?
Solution
Step 1: Analyze the first union type
When status is "ok", object must have a string property named data.Step 2: Analyze the second union type
When status is "error", object must have a string property named error.Step 3: Check each option
{ status: "ok", data: "File loaded" } matches first type correctly. Options B and C mix properties incorrectly. { status: "error", error: 404 } has error property as number, not string.Final Answer:
{ status: "ok", data: "File loaded" } -> Option BQuick Check:
Match status with correct property name and type [OK]
- Mixing properties from different union types
- Using wrong property types
- Ignoring the status-property relationship
Ready to prove it?
Pass the test and this pattern moves unknown
