valueAsNum<T extends num?> static method

T valueAsNum<T extends num?>(
  1. Object? value, {
  2. bool allowHex = false,
  3. bool allowDouble = false,
})

Implementation

static T valueAsNum<T extends num?>(
  Object? value, {
  bool allowHex = false,
  bool allowDouble = false,
}) {
  if (value is T) return value;
  if (value == null && _isNull<T>()) return null as T;

  if (value is num) {
    return value as T;
  }

  if (value is String) {
    final n = num.tryParse(value);
    if (n != null) {
      return n as T;
    }
  }
  final toInt = IntUtils.tryParse(value, allowHex: allowHex);
  if (toInt == null) {
    throw JsonParserError(
      "Failed to parse value as num.",
      details: {"value": value.toString()},
    );
  }
  return toInt as T;
}