'Multiply stringified units in Sass

I am passing values with units to a function and I want to multiply that unit value within that function. However I am finding that the value with units being passed is being interpolated as a string within the function itself, so is not letting me multiply it...

I have attempted the various strip-unit functions as proposed on the internet, however it seems that this runs into the same issue...

@function calcWidth($var1) {
  $res: $var1 * 10;

  @return $res;
}

...

.my-class {
  width: calcWidth(10px);
}

I usually end up with an error to the effect of:

SassError: Undefined operation: "10px times 10"

Adding a debug in: @debug type-of($var1) shows that my variable is a string.

I have, as I mentioned earlier that I attempted to use a strip-unit type function:

@function strip-unit($number) {
  @if type-of($number) == 'number' and not unitless($number) {
    @return $number / ($number * 0 + 1);
  }
  @return $number;
}

however this simply just returned the same thing...

How can I solve this?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source