Я полагаю, это потому, что троичный оператор вычисляет выражение и возвращает значение, которое, как ожидается, будет присвоено.Например:
var test = (my_var > 0) ? true : false;
Однако вы используете его как обычный оператор if / then / else.Хотя троичный оператор выполняет if / then / else, он традиционно используется в присваивателях.
РЕДАКТИРОВАТЬ: В качестве дополнения: будет ли это утверждение иметь смысл для вас?