index.js
function(key, value, type) {
    var val = utils.get(this.options, key);
    if (typeof val === 'undefined' || (type && utils.typeOf(val) !== type)) {
      return value;
    }
    return val;
  }
function(key, value, type) {
    var val = utils.get(this.options, key);
    if (typeof val === 'undefined' || (type && utils.typeOf(val) !== type)) {
      return value;
    }
    return val;
  }
function ( key , value , type ) { var val = utils . get ( this . options , key ) ; if ( typeof val === 'undefined' || ( type && utils . typeOf ( val ) !== type ) ) { return value ; } return val ; }
Returns the value of `key` or `value`, Or, if `type` is passed
and the value of `key` is not the same javascript native type
as `type`, then `value` is returned.

```js
app.option('admin', true);
console.log(app.either('admin', false));
//=> true

console.log(app.either('collaborator', false));
//=> false
```
@param {String} `key`
@param {any} `value`
@param {String} `type` Javascript native type (optional)
@return {Object}
@api public
Returns the value of key or value Or if type is passed and the value of key is not the same javascript native type as type then value is returned .