TypeScript Union Types - TypeScript Tutorial

TypeScript Union Types

BLUF: Understanding TypeScript Union Types is a fundamental part of building type-safe applications with TypeScript. This tutorial explains the syntax and best practices for implementing this concept reliably.
Type Safety Tip: TypeScript Union Types

TypeScript's type system provides early error detection and improved maintainability. Discover how TypeScript Union Types enhances your development workflow in the guide below.

In TypeScript, it is possible to declare a variable that can hold various types of values. This means TypeScript is capable of merging one or more distinct data types (such as number, string, etc.) into a single type known as a union type. Union types provide a robust method for representing a variable that can encompass multiple types. To combine two or more data types, the pipe ('|') symbol is utilized between the types.

Syntax

Example

(type1 | type2 | type3 | ........ | type-n)

Example

Example

let value: number|string;
value = 120;
console.log("The Numeric value of a value is: "+value);
value = "Welcome to TypeScript Tutorial";
console.log("The String value of a value is: "+value);

Output:

Output

The Numeric value of the value is: 120
The String value of the value is: Welcome to TypeScript Tutorial

Passing Union Type in Function Parameter

In a function, it is possible to pass a union type as an argument. This can be illustrated by the example provided below.

Example

Example

function display(value: (number | string))
{
    if(typeof(value) === "number")
        console.log('The given value is of type number.');
    else if(typeof(value) === "string")
        console.log('The given value is of type string.');
}
display(123);
display("ABC");

Output:

Output

The given value is of type number.
The given value is of type of string.

Passing Union Type to Arrays

TypeScript permits the inclusion of a union type within an array. This can be illustrated through the following example.

Example

Example

let arrType:number[]|string[]; 
let i:number; 
arrType = [1,2,3,4];
console.log("Numeric type array:")  

for(i = 0;i<arrType.length;i++){
   console.log(arrType[i]);
}
arrType = ["India","America","England"];
console.log("String type array:")  

for(i = 0;i<arrType.length;i++){ 
   console.log(arrType[i]);
}

Output:

Output

Numeric type array:
1
2
3
4
String type array:
India
America
England

The union can replace enums.

Enums serve the purpose of defining types that encompass a collection of constants. Typically, enums are assigned index values starting from zero (0, 1, 2, 3, etc.). An illustration of enums can be observed in the subsequent example, which presents a compilation of colors.

Example

Example

export enum Color {RED, BLUE, WHITE}

Rather than utilizing enums, we can implement union types to achieve comparable advantages in a more concise manner.

Example

Example

export type Color = 'red' | 'white' | 'blue';
const myColor: Color = 'red';
console.log(myColor.toUpperCase());

Output:

Input Required

This code uses input(). Please provide values below:

Logic Practice
Install Logic Practice
Add to home screen for a faster app-like experience