Использовать результат функции как список аргументов - PullRequest
0 голосов
/ 01 августа 2020

Есть ли разумный способ использовать результат функции map.get в качестве списка аргументов без предварительного сохранения списка в переменной?

@use "sass:map";

@mixin make-button-size($font-size, $padding-vertical, $padding-horizontal) {
    // make-button-size implementation
}

$sizes: (
    md: (10px, 11px, 12px),
)

$params: map.get($sizes, md);
@include make-button-size($params...);

Я пробовал следующее, но это приводит к синтаксической ошибке :

@include make-button-size((map.get($sizes, md))...);

1 Ответ

1 голос
/ 03 августа 2020

Он основан на https://www.sassmeister.com/.

Даже если я наберу следующее, ошибка не появится.

@mixin make-button-size($font-size, $padding-vertical, $padding-horizontal) {
    a: $font-size;
    b: $padding-vertical;
    c: $padding-horizontal;
}

$sizes: (
    md: (10px, 11px, 12px),
);
$params: map-get($sizes, md);

p {
  sizes: $params;
  @include make-button-size(map-get($sizes, md)...);
}

Скомпилировано:

p {
  sizes: 10px, 11px, 12px;
  a: 10px;
  b: 11px;
  c: 12px;
}

$sizes: (...) не имеет точки с запятой, поэтому убедитесь, что это не так.

...