tryGet<T extends Object>  method 
Implementation
T? tryGet<T extends Object>(String key, [TryGet log = TryGet.optional]) {
  final Object? value = this[key];
  if (value is! T) {
    log(key, T, value.runtimeType);
    return null;
  }
  return value;
}