Вот несколько примеров использования выражения 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.