Union из литералов
Один литеральный тип разрешает ровно одно значение. Но у темы оформления вариантов обычно несколько, и перечислить их можно через вертикальную черту. Такой тип называется объединением (union) и означает «одно из перечисленного»:
Онлайн-редактор кода, разбор решения и отметки о прогрессе доступны после входа.
ВойтиСоздать аккаунт — бесплатноОдин литеральный тип разрешает ровно одно значение. Но у темы оформления вариантов обычно несколько, и перечислить их можно через вертикальную черту. Такой тип называется объединением (union) и означает «одно из перечисленного»:
type Direction = "up" | "down";Переменной такого типа можно присвоить любое значение из списка, но только из него.
В задании тип пока описан слишком узко:
Светлая тема есть, а тёмной нет, хотя приложение умеет обе. Из-за этого последняя строка не делает ничего полезного: переменной, в которой уже лежит "light", снова присваивается "light", потому что другого значения тип просто не допускает.
Обрати внимание, что current объявлена через let, то есть переприсваивание разрешено. Дело не в переменной, а в том, насколько узко описан тип.
Про объединения: Union Types — справочник TypeScript.
Theme до объединения двух литералов: "light" и "dark". Название второго значения важно, проверка ждёт именно "dark".current попадало это второе значение.Объявление переменной current менять не нужно.
Заодно проверь себя: попробуй присвоить current строку "blue" и посмотри на текст ошибки, после чего убери эту строку.