Bird
Raised Fist0
Typescriptprogramming~10 mins

Type alias for unions in Typescript - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Type alias for unions
Define union types
↓
Create type alias
↓
Use alias in variables
↓
Assign values matching union
↓
Type checks pass or error
↓
End
This flow shows how to define a union type, create a type alias for it, use the alias for variables, assign values, and check types.
Execution Sample
Typescript
type Status = "success" | "error" | "loading";
let currentStatus: Status;
currentStatus = "loading";
currentStatus = "success";
// currentStatus = "done"; // Error
Defines a type alias 'Status' as a union of string literals and assigns valid values to a variable.
Execution Table
StepActionEvaluationResult
1Define type alias 'Status'Status = "success" | "error" | "loading"Alias created
2Declare variable 'currentStatus' of type StatuscurrentStatus: StatusVariable declared
3Assign 'loading' to currentStatuscurrentStatus = "loading"Valid assignment
4Assign 'success' to currentStatuscurrentStatus = "success"Valid assignment
5Assign 'done' to currentStatuscurrentStatus = "done"Type error: 'done' not in Status union
💡 Execution stops because 'done' is not part of the union type 'Status'
Variable Tracker
VariableStartAfter 3After 4After 5 (error)
currentStatusundefined"loading""success"Error - invalid assignment
Key Moments - 2 Insights
Why does assigning "done" to currentStatus cause an error?
Because "done" is not one of the allowed string literals in the union type 'Status', as shown in execution_table step 5.
What does the type alias 'Status' represent?
It represents a union of specific string values "success", "error", and "loading", allowing variables of this type to hold only these values (execution_table step 1).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 3, what is the value of currentStatus?
A"success"
B"loading"
C"error"
Dundefined
💡 Hint
Check the 'Result' column for step 3 in execution_table.
At which step does the type error occur when assigning a value to currentStatus?
AStep 5
BStep 3
CStep 2
DStep 4
💡 Hint
Look for the 'Type error' mention in the execution_table rows.
If we add "done" to the union type alias, what changes in the execution_table?
AStep 3 assignment causes error
BVariable declaration fails
CStep 5 assignment becomes valid
DNo changes
💡 Hint
Consider how the union type controls valid assignments shown in execution_table.
Concept Snapshot
Type alias for unions syntax:
type AliasName = Type1 | Type2 | ...;
Allows variables to hold any value from the union.
Assigning values outside union causes errors.
Use for clear, reusable type definitions.
Full Transcript
This example shows how to create a type alias named 'Status' that is a union of string literals "success", "error", and "loading". We declare a variable 'currentStatus' of this type. Assigning "loading" and "success" works fine because they are in the union. Assigning "done" causes a type error because it is not part of the union. This helps catch mistakes early by restricting values to a set of allowed options.

Practice

(1/5)
1.

What does a type alias for unions in TypeScript do?

easy
A. Defines a function that returns different types
B. Creates a new variable with multiple values
C. Gives a single name to multiple possible types
D. Declares a constant with union values

Solution

  1. 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.
  2. Step 2: Understand union types

    A union type means a value can be one of several types, like string or number.
  3. Final Answer:

    Gives a single name to multiple possible types -> Option C
  4. Quick Check:

    Type alias for unions = single name for multiple types [OK]
Hint: Type alias names multiple types combined with | [OK]
Common Mistakes:
  • Thinking it creates variables instead of naming types
  • Confusing union with function return types
  • Assuming it declares constants
2.

Which of the following is the correct syntax to create a type alias MyType that can be either string or number?

easy
A. type MyType = string | number;
B. alias MyType = string & number;
C. type MyType = string & number;
D. alias MyType = string | number;

Solution

  1. Step 1: Recall correct keyword for type alias

    Use the keyword type to create a type alias, not alias.
  2. Step 2: Use union operator for multiple types

    The union operator is |, not &. So string | number is correct.
  3. Final Answer:

    type MyType = string | number; -> Option A
  4. Quick Check:

    type + union (|) = correct syntax [OK]
Hint: Use 'type' keyword and '|' for union types [OK]
Common Mistakes:
  • Using 'alias' instead of 'type'
  • Using '&' instead of '|' for unions
  • Mixing syntax from other languages
3.

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 error
medium
A. No output
B. success\nerror\npending
C. Error at runtime
D. success\nerror

Solution

  1. Step 1: Understand the type alias Status

    Status can only be "success" or "error" strings.
  2. Step 2: Check function calls

    Calling printStatus with "success" and "error" prints those values. "pending" is invalid and commented out.
  3. Final Answer:

    success\nerror -> Option D
  4. Quick Check:

    Valid union values print correctly [OK]
Hint: Only allowed union values print without error [OK]
Common Mistakes:
  • Assuming invalid union values print without error
  • Thinking it causes runtime error
  • Ignoring commented invalid call
4.

Identify the error in this TypeScript code using a type alias for unions:

type ID = number | string;

let userId: ID = true;
medium
A. Type 'boolean' is not assignable to type 'number | string'
B. Missing semicolon after type alias
C. Type alias cannot use union types
D. Variable 'userId' must be declared with 'const'

Solution

  1. Step 1: Check type alias definition

    ID allows only number or string values.
  2. Step 2: Check assigned value type

    Assigning true is boolean, which is not allowed by the union.
  3. Final Answer:

    Type 'boolean' is not assignable to type 'number | string' -> Option A
  4. Quick Check:

    Assigning wrong type causes error [OK]
Hint: Assigned value must match union types exactly [OK]
Common Mistakes:
  • Thinking union allows any type
  • Ignoring type mismatch errors
  • Confusing syntax errors with type errors
5.

Given the type alias type Response = { status: "ok"; data: string } | { status: "error"; error: string };, which of the following objects matches the Response type?

hard
A. { status: "ok", error: "File missing" }
B. { status: "ok", data: "File loaded" }
C. { status: "error", data: "File loaded" }
D. { status: "error", error: 404 }

Solution

  1. Step 1: Analyze the first union type

    When status is "ok", object must have a string property named data.
  2. Step 2: Analyze the second union type

    When status is "error", object must have a string property named error.
  3. 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.
  4. Final Answer:

    { status: "ok", data: "File loaded" } -> Option B
  5. Quick Check:

    Match status with correct property name and type [OK]
Hint: Match status value with correct property name and type [OK]
Common Mistakes:
  • Mixing properties from different union types
  • Using wrong property types
  • Ignoring the status-property relationship
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard