TypeScript Literal Types

In TypeScript, literals allow us to specify a set of exact values that a type can have in it’s lifespan. We can assume a literal as it as an ‘enum’ which is a named group of constants of given type.

Literal types can be of 3 types:

  • string
  • number
  • boolean

1. Literal Type Syntax

Use ‘pipe’ symbol between different allowed values for a given type literal. For example, below given code is for an string literal.

type myVar = "value1" | "value2" | "value3" | "value4";
type AppStatus = "ACTIVE" | "INACTIVE" | "ONHOLD";	
type countMe = 1 | 2 | 3 | 4 | 5;
type result = true | false;	

2. Working with Literal Types

To understand better, let’s see how we can use a string literal and how we cannot.

  1. Variable Assignment

    We can assign only one of the allowed values to the literal type variable. Else it will be compile time error.

    type AppStatus = "ACTIVE" | "INACTIVE" | "ONHOLD";
    
    let currStatus: AppStatus;
    
    currStatus = "ACTIVE";		//OK
    
    currStatus = "DELETED";		//Error - Type '"DELETED"' is not 
    							//assignable to type 'AppStatus'
    
  2. Function Parameter

    We can pass only one of the allowed values to literal type argument to a method. Else it will be compile time error.

    type AppStatus = "ACTIVE" | "INACTIVE" | "ONHOLD";
    
    function showMe(currentStatus: AppStatus): void {
    	console.log(currentStatus);
    }
    
    showMe('ACTIVE');	//OK - Print 'ACTIVE'
    
    showMe('DELETED');	//Compile time Error
    

Happy Learning !!

Leave a Reply

0 Comments
Inline Feedbacks
View all comments

About Us

HowToDoInJava provides tutorials and how-to guides on Java and related technologies.

It also shares the best practices, algorithms & solutions, and frequently asked interview questions.