In TypeScript, literal types let you create types that express specific values.
For instance, let's say you only wanted to accept success
or failure
in a function argument. You could use string
:
typescript
function printStatus(status: string) {console.log(`Status is: ${status}`);}printStatus("error"); // No type error!
But as you can see, we can call printStatus
with any string
value, which is not what we want.
Instead, we can use a literal type:
typescript
function printStatus(status: "success" | "failure") {console.log(`Status is: ${status}`);}printStatus("success"); // Outputs: Status is: successprintStatus("error"); // Type error!
Now, we can only call printStatus
with the values success
or failure
.
We can also use literal types with other basic types:
typescript
// Numeric literalstype ValidIndexes = 1 | 2 | 3 | 4 | 5;// Boolean literalstype SuccessState = {success: true;data: string;};type FailureState = {success: false;error: string;};
In the example above, ValidIndexes
can only be 1
, 2
, 3
, 4
, or 5
. SuccessState
can only be { success: true, data: string }
, and FailureState
can only be { success: false, error: string }
.
Share this TypeScript Concept with your friends