asT<T extends Object?> function
T?
asT<T extends Object?>(
- dynamic value, [
- T? defaultValue
Implementation
T? asT<T extends Object?>(dynamic value, [T? defaultValue]) {
if (value is T) {
return value;
}
try {
if (value != null) {
final String valueS = value.toString();
if ('' is T) {
return valueS as T;
} else if (0 is T) {
return int.parse(valueS) as T;
} else if (0.0 is T) {
return double.parse(valueS) as T;
} else if (false is T) {
if (valueS == '0' || valueS == '1') {
return (valueS == '1') as T;
}
return (valueS == 'true') as T;
} else {
return JsonConvert.convert<T>(value);
}
}
} catch (e, stackTrace) {
log('asT<$T>', error: e, stackTrace: stackTrace);
return defaultValue;
}
return defaultValue;
}