Class SassNumber

Sass's number type.

Hierarchy

Index

Constructors

constructor

  • new SassNumber(value: number, unit?: string | { denominatorUnits?: string[] | List<string>; numeratorUnits?: string[] | List<string> }): SassNumber
  • Creates a new number with more complex units than just a single numerator.

    Upon construction, any compatible numerator and denominator units are simplified away according to the conversion factor between them.

    Parameters

    • value: number

      The number's numeric value.

    • Optional unit: string | { denominatorUnits?: string[] | List<string>; numeratorUnits?: string[] | List<string> }

      If this is a string, it's used as the single numerator unit for the number.

    Returns SassNumber

Accessors

asInt

  • get asInt(): null | number

asList

  • get asList(): List<Value>

denominatorUnits

  • get denominatorUnits(): List<string>

hasBrackets

  • get hasBrackets(): boolean
  • Whether this value as a list has brackets.

    All SassScript values can be used as lists. Maps count as lists of pairs, and all other values count as single-value lists.

    Returns boolean

hasUnits

  • get hasUnits(): boolean

isInt

  • get isInt(): boolean

isTruthy

  • get isTruthy(): boolean

numeratorUnits

  • get numeratorUnits(): List<string>

realNull

  • get realNull(): null | Value

separator

  • The separator for this value as a list.

    All SassScript values can be used as lists. Maps count as lists of pairs, and all other values count as single-value lists.

    Returns ListSeparator

value

  • get value(): number

Methods

assertBoolean

assertColor

assertFunction

assertInRange

  • assertInRange(min: number, max: number, name?: string): number
  • Returns value if it's within min and max. If value is equal to min or max according to Sass's equality, returns min or max respectively. Otherwise, throws an error.

    Parameters

    • min: number
    • max: number
    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    Returns number

assertInt

  • assertInt(name?: string): number
  • If value is an integer according to isInt, returns it rounded to that integer. Otherwise, throws an error.

    Parameters

    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    Returns number

assertMap

assertNoUnits

  • If this number has no units, returns it. Otherwise, throws an error.

    Parameters

    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    Returns SassNumber

assertNumber

assertString

assertUnit

  • assertUnit(unit: string, name?: string): SassNumber
  • If this number has unit as its only unit (and as a numerator), returns this number. Otherwise, throws an error.

    Parameters

    • unit: string
    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    Returns SassNumber

coerce

  • coerce(newNumerators: string[] | List<string>, newDenominators: string[] | List<string>, name?: string): SassNumber
  • Returns a copy of this number, converted to the units represented by newNumerators and newDenominators.

    Unlike convert this does not throw an error if this number is unitless and either newNumerators or newDenominators are not empty, or vice-versa. Instead, it treats all unitless numbers as convertible to and from all units without changing the value.

    throws

    Error if this number's units are incompatible with newNumerators and newDenominators.

    Parameters

    • newNumerators: string[] | List<string>

      The numerator units to convert this number to. This may be either a plain JavaScript array or an immutable List from the immutable package.

    • newDenominators: string[] | List<string>

      The denominator units to convert this number to. This may be either a plain JavaScript array or an immutable List from the immutable package.

    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    Returns SassNumber

coerceToMatch

  • Returns a copy of this number, converted to the units represented by newNumerators and newDenominators.

    Unlike convertToMatch this does not throw an error if this number is unitless and either newNumerators or newDenominators are not empty, or vice-versa. Instead, it treats all unitless numbers as convertible to and from all units without changing the value.

    throws

    Error if this number's units are incompatible with other's units.

    Parameters

    • other: SassNumber
    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    • Optional otherName: string

      The name of the function argument other came from (without the $) if it came from an argument. Used for error reporting.

    Returns SassNumber

coerceValue

  • coerceValue(newNumerators: string[] | List<string>, newDenominators: string[] | List<string>, name?: string): number
  • Returns value, converted to the units represented by newNumerators and newDenominators.

    Unlike convertValue this does not throw an error if this number is unitless and either newNumerators or newDenominators are not empty, or vice-versa. Instead, it treats all unitless numbers as convertible to and from all units without changing the value.

    throws

    Error if this number's units are incompatible with newNumerators and newDenominators.

    Parameters

    • newNumerators: string[] | List<string>

      The numerator units to convert value to. This may be either a plain JavaScript array or an immutable List from the immutable package.

    • newDenominators: string[] | List<string>

      The denominator units to convert value to. This may be either a plain JavaScript array or an immutable List from the immutable package.

    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    Returns number

coerceValueToMatch

  • coerceValueToMatch(other: SassNumber, name?: string, otherName?: string): number
  • Returns value, converted to the units represented by newNumerators and newDenominators.

    Unlike convertValueToMatch this does not throw an error if this number is unitless and either newNumerators or newDenominators are not empty, or vice-versa. Instead, it treats all unitless numbers as convertible to and from all units without changing the value.

    throws

    Error if this number's units are incompatible with other's units.

    Parameters

    • other: SassNumber
    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    • Optional otherName: string

      The name of the function argument other came from (without the $) if it came from an argument. Used for error reporting.

    Returns number

compatibleWithUnit

  • compatibleWithUnit(unit: string): boolean
  • Whether this has exactly one numerator unit, and that unit is compatible with unit.

    Parameters

    • unit: string

    Returns boolean

convert

  • convert(newNumerators: string[] | List<string>, newDenominators: string[] | List<string>, name?: string): SassNumber
  • Returns a copy of this number, converted to the units represented by newNumerators and newDenominators.

    throws

    Error if this number's units are incompatible with newNumerators and newDenominators; or if this number is unitless and either newNumerators or newDenominators are not empty, or vice-versa.

    Parameters

    • newNumerators: string[] | List<string>

      The numerator units to convert this number to. This may be either a plain JavaScript array or an immutable List from the immutable package.

    • newDenominators: string[] | List<string>

      The denominator units to convert this number to. This may be either a plain JavaScript array or an immutable List from the immutable package.

    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    Returns SassNumber

convertToMatch

  • Returns a copy of this number, converted to the same units as other.

    throws

    Error if this number's units are incompatible with other's units, or if either number is unitless but the other is not.

    Parameters

    • other: SassNumber
    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    • Optional otherName: string

      The name of the function argument other came from (without the $) if it came from an argument. Used for error reporting.

    Returns SassNumber

convertValue

  • convertValue(newNumerators: string[] | List<string>, newDenominators: string[] | List<string>, name?: string): number
  • Returns value, converted to the units represented by newNumerators and newDenominators.

    throws

    Error if this number's units are incompatible with newNumerators and newDenominators; or if this number is unitless and either newNumerators or newDenominators are not empty, or vice-versa.

    Parameters

    • newNumerators: string[] | List<string>

      The numerator units to convert value to. This may be either a plain JavaScript array or an immutable List from the immutable package.

    • newDenominators: string[] | List<string>

      The denominator units to convert value to. This may be either a plain JavaScript array or an immutable List from the immutable package.

    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    Returns number

convertValueToMatch

  • convertValueToMatch(other: SassNumber, name?: string, otherName?: string): number
  • Returns value, converted to the same units as other.

    throws

    Error if this number's units are incompatible with other's units, or if either number is unitless but the other is not.

    Parameters

    • other: SassNumber
    • Optional name: string

      The name of the function argument this came from (without the $) if it came from an argument. Used for error reporting.

    • Optional otherName: string

      The name of the function argument other came from (without the $) if it came from an argument. Used for error reporting.

    Returns number

equals

  • equals(other: Value): boolean

get

  • get(index: number): undefined | Value
  • Returns the value at index index in this value as a list, or undefined if index isn't valid for this list.

    All SassScript values can be used as lists. Maps count as lists of pairs, and all other values count as single-value lists.

    This is a shorthand for this.asList.get(index), although it may be more efficient in some cases.

    ⚠️ Heads up!

    This method uses the same indexing conventions as the immutable package: unlike Sass the index of the first element is 0, but like Sass negative numbers index from the end of the list.

    Parameters

    • index: number

    Returns undefined | Value

hasUnit

  • hasUnit(unit: string): boolean

hashCode

  • hashCode(): number

sassIndexToListIndex

  • sassIndexToListIndex(sassIndex: Value, name?: string): number
  • Converts sassIndex into a JavaScript-style index into the list returned by asList.

    Sass indexes are one-based, while JavaScript indexes are zero-based. Sass indexes may also be negative in order to index from the end of the list.

    throws

    Error If sassIndex isn't a number, if that number isn't an integer, or if that integer isn't a valid index for asList.

    Parameters

    • sassIndex: Value

      The Sass-style index into this as a list.

    • Optional name: string

      The name of the function argument sassIndex came from (without the $) if it came from an argument. Used for error reporting.

    Returns number

tryMap