TypeScript Literal Types
TypeScript's literal types allow developers to specify exact values for variables, function parameters, or properties, enhancing type safety by ensuring variables can only hold predefined values.
- Allow variables to have specific, exact values.
- Enhance code reliability by restricting permissible values.
Types of literal types
Here are the different types of literal types:
1. String Literal Types
String literal types allow a variable to accept only a specific set of string values.
type Direction = "Up" | "Down" | "Left" | "Right";
let move: Direction;
move = "Up";
// move = "Forward";
Output:
Up
Error: Type '"Forward"' is not assignable to type 'Direction'
In this example:
- The Direction type can only be one of the specified string literals: "Up", "Down", "Left", or "Right".
- Assigning any value outside this set results in a compile-time error.
2. Numeric Literal Types
Numeric literal types restrict a variable to a specific set of numeric values..
type DiceRoll = 1 | 2 | 3 | 4 | 5 | 6;
function rollDice(): DiceRoll {
return 4; // Valid
// return 7; Error
}
console.log(rollDice());
Output :
4
Error: Type '7' is not assignable to type 'DiceRoll'
In this example:
- The DiceRoll type allows only the numbers 1 through 6.
- Returning a number outside this range causes a compile-time error.
3. Boolean Literal Types
Boolean literal types constrain a variable to the boolean values true or false.
type Success = true;
function operation(): Success {
return true; // Valid return value
// return false; // Error
}
console.log(operation());
Output:
true
Error: Type 'false' is not assignable to type 'Success'
In this example:
- The Success type is strictly true.
- Returning false would result in a compile-time error.