Этот CoffeeScript:
x = y > z ? 'a' : 'b'
x = (_ref = y > z) != null ? _ref : {
'a': 'b'
};
Я предполагаю, что это ожидаемо, просто не интуитивно понятно.
Это лучший способ сделать это в coffeescript?
Этот CoffeeScript:
x = y > z ? 'a' : 'b'
x = (_ref = y > z) != null ? _ref : {
'a': 'b'
};
Я предполагаю, что это ожидаемо, просто не интуитивно понятно.
Это лучший способ сделать это в coffeescript?
Оператор CoffeeScript ?
является оператором существования (также используются имена soak или elvis). Пример: context = window ? global
.
Способ CoffeeScript сделать это - x = if x > z then 'a' else 'b'
(или x = x > z and 'a' or 'b'
, но операнд "и" должен быть правдивым, чтобы это работало), который будет компилироваться в тернарный оператор, который вы ожидаете.
Вы можете использовать if
вместо ?:
:
x = if y > z then 'a' else 'b'
это компилируется в
var x;
x = y > z ? 'a' : 'b';
Я думаю, это то, что я хочу, но я не знаю, доволен ли я этим.
Кофейный скрипт:
x = if y > z then 'a' else 'b'
Javascript
x = y > z ? 'a' : 'b';