Boolean Literal Types

Тренажер по TypeScript для пользователей с начальным уровнем подготовки.

Тренажер по TypeScript

Обычно мы привыкли, что тип boolean может принимать два значения: true или false. Однако в TypeScript можно сузить этот тип до конкретного литерала. Это называется Boolean Literal Types.

Например, вы можете объявить тип, который допускает только значение true: type Success = true;. Если попытаться присвоить такой переменной false, компилятор выдаст ошибку. Это кажется избыточным в изоляции, но становится мощным инструментом при создании сложных структур типов, перегрузках функций или условных типах, где важно жестко зафиксировать состояние.

В этих уроках и практических заданиях вы научитесь объявлять булевы литералы, отличать их от обычного boolean и использовать для строгой типизации логики вашего приложения. Тренажер поможет закрепить синтаксис и понять поведение таких типов.

Список тем

1. Объявление литерального типа

id: 40667_ts_bool_lit_replace_01

В TypeScript литеральные типы позволяют ограничить возможные значения переменной конкретными литералами. Например, тип boolean может быть сужен до литерального типа true или false. В этом задании вам нужно объявить тип переменной isActive так, чтобы она могла принимать только значение true. Заполните пропуск, указав правильный литеральный тип после знака присваивания. Код должен быть синтаксически корректным и соответствовать концепции boolean literal types.

Заполните пропуски
let isActive: input1S = true;

// Эта переменная должна всегда иметь значение true
// Попытка присвоить false вызовет ошибку компиляции
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Проверка совместимости

id: 40667_ts_bool_lit_predict_02

Проанализируйте приведённый фрагмент кода на TypeScript. Обратите внимание на объявление переменной с конкретным литеральным типом и последующую попытку присвоения ей значения другого литерального типа. Вам необходимо предсказать поведение компилятора TypeScript: произойдёт ли ошибка компиляции или код успешно скомпилируется и выполнится.

Выберите правильный вариант ответа
let flag: true = true;
let result = false;

// Попытка присвоения
flag = result;
Сообщения
Проверить
Показать подсказку

3. Создание типа флага

id: 40667_ts_bool_lit_build_03

Из предложенных строк соберите корректное определение типа-литерала boolean в TypeScript. Тип должен называться IsEnabled и быть равным true. Затем объявите переменную с этим типом. Игнорируйте лишние строки, которые не соответствуют условию или нарушают порядок объявления.

Перетяните в правильном порядке строки из одного блока в другой
type IsEnabled = true;
type IsEnabled = false;
type IsEnabled = boolean;
const enabled: IsEnabled = true;
let flag: boolean;
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Неверное присваивание

id: 40667_ts_bool_lit_error_04

В данном фрагменте кода TypeScript переменная объявлена с литеральным типом false, но ей присваивается значение true. Это приводит к ошибке типизации, так как литеральный тип false допускает только одно конкретное значение. Исправьте присваивание, чтобы значение переменной соответствовало её типу.

Найдите ошибку и исправьте
let isReady: false = true;
console.log(isReady);
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Поиск литеральных типов

id: 40667_ts_bool_lit_click_06

Внимательно изучите приведённый фрагмент кода на TypeScript. Ваша задача — найти и отметить только те места, где используются литеральные типы `true` или `false` (то есть `true` или `false`, указанные именно как тип, а не как значение). Не отмечайте обычный тип `boolean`, а также не отмечайте значения `true` и `false`, которые используются как значения (даже если они присваиваются переменной с литеральным типом).

Кликните по всем фрагментам, которые подходят под условие задания.
let isDone: {{boolean~|~t1}} = false;
let trueLiteral: {{true~|~t2}} = {{true~|~t3}};
let falseLiteral: {{false~|~t4}} = {{false~|~t5}};
type MyTrue = {{true~|~t6}};
type MyFalse = {{false~|~t8}};
let a: MyTrue = {{true~|~t7}};
let b: MyFalse = {{false~|~t9}};
Сообщения
Проверить
Показать подсказку

6. Разбор объявления

id: 40667_ts_bool_lit_highlight_07

Разметьте в строке объявления переменной TypeScript следующие элементы: имя переменной, литеральный тип (boolean literal type) и присваиваемое значение. Обратите внимание, что литеральные типы позволяют указывать конкретные значения (например, true, false, определённые строки или числа) в качестве типа переменной. В данном задании доступны три категории для разметки: имя переменной, тип-литерал и значение.

Кликните по каждому выделенному фрагменту и выберите для него подходящий тип из списка под текстом.
let {{isDone~|~t1}}: {{true~|~t2}} = {{true~|~t3}};
Присваиваемое значение
Тип-литерал
Имя переменной
Сообщения
Проверить
Показать подсказку

TypeScript: компиляция и запуск

id: 40667_compiler

Погрузитесь в мир Boolean Literal Types, где переменная может принимать не просто любое логическое значение, а строго определенное: только true или только false. Это мощный инструмент для создания предсказуемого кода и строгих интерфейсов. Попробуйте изменить значение переменной `isSystemActive` на `false` и посмотрите, как TypeScript мгновенно укажет на ошибку. Экспериментируйте с функцией `setAdminMode`: добавьте новые условия и проверьте, как компилятор защищает вас от передачи неверных флагов. Создавайте свои уникальные типы, чтобы сделать логику вашего приложения максимально прозрачной!

TS
Запустить тренажёр (TypeScript)
НайтиКурс.Ру