В Luau тестируют объявление переменных прямо в условии if
Синтаксис if local и if const доступен через бета-функции Studio. Пока поддерживается одна переменная и одно значение.

Roblox начала бета-тест синтаксиса if local и if const в языке Luau. Обновление опубликовано 6 октября. Новые конструкции позволяют объявить переменную непосредственно внутри условия if или elseif, а затем использовать найденное значение в соответствующей ветке. Функция включается в Studio через пункт If Local/Const Bindings в Beta Features.
В примере Roblox скрипт последовательно проверяет наличие персонажа, Humanoid и его корневой части. С новой записью получение значения и проверка объединены в одном условии. В прежнем варианте разработчику требовалось сначала отдельно объявить каждую локальную переменную, а затем написать if для проверки того, что нужный объект существует.
Вариант if const использует тот же способ связывания значения с условием. Компания показала его на получении игрока по модели персонажа. После успешной проверки код внутри ветки обращается к имени найденного игрока. Объявление содержит примеры обеих конструкций, поэтому автор может сравнить записи на одинаковой операции поиска.
Новый синтаксис также работает внутри условных выражений. В опубликованном примере переменная name получает имя игрока, если поиск дал результат, или строку Unknown в противном случае. Отдельный пример показывает уточнение типа: значение, которое могло отсутствовать, внутри успешной ветки рассматривается как найденный объект Player.
У бета-версии есть ограничения. Поддерживаются только одно имя и одно значение, поэтому одновременно связать результаты pcall, например статус и возвращённые данные, пока нельзя. Составные условия с несколькими объявлениями тоже недоступны. Roblox допускает их поддержку в будущем, но конкретный срок в сообщении не указан; подробности решения вынесены в документ RFC.