Тип строкового литерала в TypeScript

С помощью оператора объединения типов можно объединять не только встроенные типы, но и строки. Для примера сделаем так, чтобы переменная могла принимать только одно из двух строковых значений:

let str: 'success' | 'error';

Давайте проверим. Запишем переменную одну из строк:

str = 'success';

Запишем вторую:

str = 'error';

А вот попытка записать иную строку приведет к ошибке:

str = 'eee'; // ошибка

Сделайте так, чтобы переменная могла принимать одно из трех значений: 'error', 'warning' или 'success'.

Псевдонимы

Для объединения строк можно ввести свой тип. Давайте сделаем это:

type message = 'success' | 'error';

Объявим переменную с нашим новым типом:

let str: message;

Запишем в эту переменную какое-нибудь значение:

str = 'success';

Сделайте тип данных, который будет разрешать переменной принимать одно из трех значений: 'error', 'warning' или 'success'.