Sass - проверьте, какое значение имеет переменная
Предположим, что у меня есть переменная:
$var: 5px;
но где-то в коде его значение изменилось на возможный цвет, число, em, rm и т.д..
Есть ли какая-либо функция для определения того, какой тип значения у нее есть?
то есть
@if is-color($var) { //do something }
Я знаю, что в sass нет функции is-color, но есть ли другие методы для этого или функции?
Ответы
Ответ 1
Из документации Sass:
type_of ($ value)
Возвращает тип значения.
Примеры:
type-of(100px) => number
type-of(asdf) => string
type-of("asdf") => string
type-of(true) => bool
type-of(#fff) => color
type-of(blue) => color
http://sass-lang.com/documentation/Sass/Script/Functions.html#type_of-instance_method
(заметим, что -
и _
взаимозаменяемы в функциях Сасса).
Ответ 2
Чтобы быть немного понятнее, вот как вы можете использовать тип:
@if type-of($my-variable) == string {
/* do something */
}
В дополнение к типам, указанным в документах, тип-тип также вернет "карту", если передан объект карты SASS:
$font-sizes: (
small: rem-calc(18px),
medium: rem-calc(20px),
large: rem-calc(22px)
);
@if type-of($font-sizes) == map {
/* do map-related thing */
} @else {
/* do other thing */
}