If

Вот несколько примеров использования выражения if :

    if (life == 0) destroy();
    if (flag) 1 else 2;
</div>

Абстрактный синтаксис выражения if :

    if( expr-cond ) expr-1 [else expr-2]
</div>

Сначала вычисляется expr-cond. Оно должно иметь тип Bool. Далее если оно сводится к true выполняется expr-1, иначе если существует expr-2, вычисляется оно.

Если else нет, то выражение if имеет тип Void. Если else есть, то expr-1 и expr-2 должны иметь один тип, который и будет типом выражения if :

    var x : Void = if( flag ) destroy();
    var y : Int = if( flag ) 1 else 2;
</div>

В haXe, if аналогично тернарному оператору из языка C a?b:c (но и сам этот оператор поддерживается).

Как исключение, если блок if не должен возвращать какое-либо значение (как в середине Блока), то expr-1 и expr-2 могут иметь разные типы и типом блока if будет Void.