If

Вот несколько примеров использования выражения if :
    if (life == 0) destroy();
    if (flag) 1 else 2;
Абстрактный синтаксис выражения if :
    if( expr-cond ) expr-1 [else expr-2]
Сначала вычисляется 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;
В haXe, if аналогично тернарному оператору из языка C a?b:c (но и сам этот оператор поддерживается). Как исключение, если блок if не должен возвращать какое-либо значение (как в середине Блока), то expr-1 и expr-2 могут иметь разные типы и типом блока if будет Void.