code: function _del(obj, key) {
      if (arguments.length !== 2 || !is_1.isObject(obj) || (!is_1.isArray(key) && !is_1.isString(key)))
          return null;
      var props = string_1.split(key);
      var prop = props.shift();
      var match = matchIndex(prop);
      var next = obj[prop];
      if (match)
          next = obj[match.name][match.index];
      if (props.length > 0) {
          _del(next, props);
      }
      else {
          if (match) {
              obj[match.name].splice(match.index, 1);
          }
          else {
              delete obj[prop];
          }
      }
      return obj;
  }
docs: Del
  @private