@error
При написании миксов и функций, принимающих аргументы, обычно необходимо убедиться, что эти аргументы имеют типы и форматы, ожидаемые вашим API. Если этого нет, пользователю необходимо сообщить об ошибке, и ваш микс/функция должна быть остановлена.
Sass упрощает это с помощью правила @error, которое пишется @error <expression>. Оно выводит значение выражения (обычно строка) вместе со стеком вызовов, указывающим, как был вызван текущий микс или функция. После вывода ошибки Sass останавливает компиляцию таблицы стилей и сообщает любой системе, которая её запускает, об ошибке.
@mixin reflexive-position($property, $value) {
@if $property != left and $property != right {
@error "Property #{$property} must be either left or right.";
}
$left-value: if($property == right, initial, $value);
$right-value: if($property == right, $value, initial);
left: $left-value;
right: $right-value;
[dir=rtl] & {
left: $right-value;
right: $left-value;
}
}
.sidebar {
@include reflexive-position(top, 12px);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// Error: Property top must be either left or right.
}// SASS
@mixin reflexive-position($property, $value)
@if $property != left and $property != right
@error "Property #{$property} must be either left or right."
$left-value: if($property == right, initial, $value)
$right-value: if($property == right, $value, initial)
left: $left-value
right: $right-value
[dir=rtl] &
left: $right-value
right: $left-value
.sidebar
@include reflexive-position(top, 12px)
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// Error: Property top must be either left or right.Точный формат ошибки и стека вызовов зависит от реализации и может также зависеть от вашей системы сборки. Вот как это выглядит в Dart Sass при запуске из командной строки:
Error: "Property top must be either left or right."
╷
3 │ @error "Property #{$property} must be either left or right.";
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
╵
example.scss 3:5 reflexive-position()
example.scss 19:3 root stylesheet
© 2006–2025 the Sass team, and numerous contributors
Licensed under the MIT License.
https://sass-lang.com/documentation/at-rules/error