WIP
The maybe/optional data types in functional languages such as Haskell and Scala have ways to handle null/undefined that are often superior to using validation, conditionals and operators to infer whether or not a value is nullish.
That's what optional chaining and null coalescing remind me of. They're also a replacement for usage of Lodash .get() method which allows for default values to be set in the last parameter, hence handling nullish value use cases.
Rather than using something.property.anotherproperty
, which can error (and hence crash your program/web page) if it encounters a nullish value for one of the properties, we use something?.property?.anotherproperty
instead, which only returns undefined
(instead of an error) if a nullish value is encountered in one of the properties.
Usage:
Article on compatibility/proposal stage: https://stackoverflow.com/questions/59574047/how-to-use-optional-chaining-in-node-js-12