code: function get(obj, key, def) {
      var result = _get(assign({}, obj), key);
      if (!is_1.isValue(result) && def) {
          _set(obj, key, def);
          result = def;
      }
      return result;
  }
docs: Get
  Gets a property within the supplied object.
  
  @param obj the object to inspect.
  @param key the dot notated key or array of keys.
  @param def a default value to set if not exists.