Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save coderatchet/03b34fdf2bef2bfc9216be8fde5c9242 to your computer and use it in GitHub Desktop.
Save coderatchet/03b34fdf2bef2bfc9216be8fde5c9242 to your computer and use it in GitHub Desktop.
default values for keys in a configuration object for a function using goog.object.extend()
/**
* @typedef {{
* exportFormat: string,
* renderFormat: string,
* exportArguments: Array }}
*/
some.namespace.MyClass.ARGUMENTS;
/**
* @param {some.namespace.MyClass.ARGUMENTS=} opt_config optional configuration object
*/
some.namespace.MyClass = function(opt_config) {
/** @ type {!some.namespace.MyClass.ARGUMENTS} */
this.config_ = goog.object.extend({
textContent: 'default',
tagType: 'text-link',
applyArguments: []
}, opt_config);
};
/* neater, easier to read and non-stringy */
/**
* @param {object=} opt_config optional configuration object
*/
some.namespace.MyClass = function(opt_config) {
/* ... */
this.config_ = opt_config
goog.object.setIfUndefined(config_, 'exportFormat', 'default');
goog.object.setIfUndefined(config_, 'renderFormat', 'text-link');
goog.object.setIfUndefined(config_, 'exportArguments', []);
/* ... */
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment