我有一个称为“ .align”的参数混合,它接受一个参数,该参数是高度的列表:
.align(@parent, @child, @heights) ...
我这样称呼该函数:
.align(rectangle, img, 154px 152px 166px 166px 159px 112px);
以这种方式调用函数时,出现错误“对无效类型的操作”。我已将问题隔离到“ .align”中的这段代码:
@highest-height: max(@heights);
这对我来说很奇怪,因为1.我之前做过几乎完全相同的事情; 2。因为当我将高度列表(154px 152px 166px 166px 166px 159px 112px)放入mixin而不是通过mixin传递时,它在“最大”功能中工作正常。
最佳答案
(临时答案:)
此最小测试将按预期进行编译(小于1.7.4):
x {
.align(rectangle, img, 154px 152px 166px 166px 159px 112px);
y: @highest-height;
}
.align(@parent, @child, @heights) {
@highest-height: max(@heights);
}
因此问题出在其他地方。实际上,
max
函数本身无法生成此类错误消息,通常会针对具有无效操作数的算术表达式(例如(1 + a)
)抛出“对无效类型的操作”。因此,我想我们需要代码的更多部分来找出问题所在。