valueAsInt<T extends int?> static method
T
valueAsInt<
T extends int?>( - Object? value, {
- bool allowHex = false,
- bool allowDouble = false,
})
Implementation
static T valueAsInt<T extends int?>(Object? value,
{bool allowHex = false, bool allowDouble = false}) {
if (value is T) return value;
if (value == null && _isNull<T>()) return null as T;
int? parse(num v) {
if (v is int) return v;
if (allowDouble == true) return v.toInt();
if (!allowDouble && v == v.truncateToDouble()) {
return v.toInt();
}
return null;
}
if (value is num) {
final v = parse(value);
if (v != null) return v as T;
}
if (value is String) {
final n = num.tryParse(value);
if (n != null) {
final v = parse(n);
if (v != null) return v as T;
}
}
final toInt = IntUtils.tryParse(value, allowHex: allowHex);
if (toInt == null) {
throw JSONHelperException("Failed to parse value as int.",
details: {"value": value});
}
return toInt as T;
}