Stylus:从函数中的哈希中获取深度值

Stylus: fetching deep values from a hash in a function

我刚刚从 Sass 转换为 Stylus,并且对功能有点陌生。我在我的函数中访问更深层次的哈希值时遇到问题。这是一个例子:

$type-scale = {
    small: {
        base-font-size: 16px,
        base-line-height: 1.3
        }
    medium: {
        base-font-size: 18px,
        base-line-height: 1.4
    }
    large: {
        base-font-size: 22px,
        base-line-height: 1.5
    }
}

font-scale()
    scale = arguments[0]
    if scale in $type-scale
        font-size: base-font-size
        line-height: base-line-height
    else
        error('Not a defined scale')

.foo
    font-scale('small')

您需要使用[]来获取变量定义的属性值。对于 base-font-sizebase-line-height 你可以使用普通的点符号:

$type-scale = {
  small: {
    base-font-size: 16px,
    base-line-height: 1.3
  }
  medium: {
    base-font-size: 18px,
    base-line-height: 1.4
  }
  large: {
    base-font-size: 22px,
    base-line-height: 1.5
  }
}

font-scale(scale)
  if scale in $type-scale
    font-size: $type-scale[scale].base-font-size
    line-height: $type-scale[scale].base-line-height
  else
    error('Not a defined scale')

.foo
  font-scale('small')