0

这个咖啡脚本:

x = y > z ? 'a' : 'b'

编译为

x = (_ref = y > z) != null ? _ref : {
  'a': 'b'
};

我认为这是意料之中的,只是不直观。

这在coffeescript中有更好的方法吗?

4

3 回答 3

0

您可以使用if代替?:

x = if y > z then 'a' else 'b'

编译为

var x;

x = y > z ? 'a' : 'b';
于 2013-09-29T08:21:51.327 回答
0

我想这就是我想要的,但我不知道我是否满意。

咖啡脚本:

x = if y > z then 'a' else 'b'

Javascript

x = y > z ? 'a' : 'b';
于 2013-09-29T08:22:43.750 回答
0

CoffeeScript 的?运算符是存在运算符(也使用“soak”或“elvis”名称)。例子:context = window ? global

CoffeeScript 的做法是x = if x > z then 'a' else 'b'(或x = x > z and 'a' or 'b',但“与”操作数必须是真实的才能工作),它将编译为您期望的三元运算符。

于 2013-09-29T08:23:34.623 回答