Вот несколько примеров использования выражения if :
Абстрактный синтаксис выражения if :
Сначала вычисляется expr-cond. Оно должно иметь тип Bool. Далее если оно сводится к true выполняется expr-1, иначе если существует expr-2, вычисляется оно.
Если else нет, то выражение if имеет тип Void. Если else есть, то expr-1 и expr-2 должны иметь один тип, который и будет типом выражения if :
В haXe, if аналогично тернарному оператору из языка C a?b:c (но и сам этот оператор поддерживается).
Как исключение, если блок if не должен возвращать какое-либо значение (как в середине Блока), то expr-1 и expr-2 могут иметь разные типы и типом блока if будет Void.