Глянем сразу на примере что это такое:
let b = 'hi';
Если мы глянем на переменную, ее тип будет string
Но мы можем задать по сути кастомный тип, например вот так:
let b:'hello' = 'hello';
Теперь переменная b
может принимать только 'hello'
, и ничего больше.
Теперь посмотрим как это можно применить на практике
type CardinalDirection = 'North' | 'East' | 'South' | 'West'; // у нас есть тип с литеральными значениями
function move(distance: number, direction: CardinalDirection) {
return console.log(` I walk ${distance == 1 ? `${distance} meter`: `${distance} meters`} ${direction}`);
}
move(2,'West'); // I walk 2 meters West
move(3 '') // // Здесь мы ничего не можем указать, кроме указанных нами типов
Ide нам сразу подсказывает, что мы можем указать.
Вот и все, мы просто создаем свое определенное строковое фиксированное значение, которое является нашим типом.