getPropertyAs<T> method

T? getPropertyAs<T>(
  1. String? key, {
  2. String? defaultValue,
  3. bool caseSensitive = false,
})

Alias to getProperty with a casting to T.

Implementation

T? getPropertyAs<T>(String? key,
    {String? defaultValue, bool caseSensitive = false}) {
  var val = getProperty(key,
      defaultValue: defaultValue, caseSensitive: caseSensitive);
  if (val == null) return null;

  if (val is! T) {
    var parser = TypeParser.parserFor<T>();
    if (parser != null) {
      return parser(val);
    }

    throw StateError("Can't return key `$key` as `$T`: $val");
  }

  return val as T;
}