Pseudomandatory parameters in es6 functions

In many programming languages, the parameters of a function are by default mandatory and the developer has to explicitly define that a parameter is optional. In Javascript, every parameter is optional, but we can enforce this behavior without messing with the actual body of a function, taking advantage of es6’s feature of default values for parameters.

const _err = function(message) {
  throw new Error(message);
}

const getSum = (a = _err('a is not defined'), b = _err('b is not defined')) => a + b;

getSum(10); // throws Error b is not defined

`_err` is a function that immediately throws an Error. If no value is passed for one of the parameters, the default value is going to be used, `err` will be called and an Error will be thrown. You can see more examples for the default parameters feature on Mozilla’s Developer Network.

Book Review: The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations

(5 / 5)

Easy read, with many real-world examples from companies like Linkedin, Twitter, Etsy. Provides myriad of best practices. I highly recommend this book to anyone that is involved in the development of any type of software, from POs to developers, and from QA engineers to Managers, this book has to offer practical advice to everyone.