我有一个称为“ .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))抛出“对无效类型的操作”。因此,我想我们需要代码的更多部分来找出问题所在。

10-03 00:18