Function constants for Identity and No-op
Tiddo Langerak
tiddolangerak at gmail.com
Wed Aug 10 10:03:00 UTC 2016
I think this is more about improving readability than saving a few
characters.
On 08/10/2016 11:10 AM, Isiah Meadows wrote:
>
> I'll note that it's longer than just typing them out manually (and
> close if they're aliased):
>
> ```js
> Function.IDENTITY
> IDENTITY
> x => x
>
> Function.NOOP
> NOOP
> () => {}
> ```
>
> Not sure if it adds anything.
>
>
> On Tue, Aug 9, 2016, 14:44 Eli Perelman <eli at eliperelman.com
> <mailto:eli at eliperelman.com>> wrote:
>
> I'm not sure if something like this has been proposed before, but
> I often find myself declaring constants for the identity function
> and the no-op function. I think it would be useful to have
> constants available on Function containing these values. For
> example `Function.IDENTITY` and `Function.NOOP`. Essentially these
> constants would map to:
>
> ```js
> Function.IDENTITY = (a) => a;
> Function.NOOP = () => null; // or:
> Function.NOOP = () => {};
> ```
>
> These could then be used in places where non-user-controlled APIs
> need default functions need to be executed, or as placeholders for
> default values that may be executed before a function has been
> supplied. For example:
>
> ```js
> // third-party API requires a callback or throws, but no
> functionality really needs to done:
> thirdParty.action(Function.NOOP);
>
> // Function needs a default which *may* execute prior to having a
> different one specified (contrived):
> const action = (handler = Function.IDENTITY, value = 10)
> =>handler(value);
> ```
>
> Thoughts? Seems like something simple with positive value. Thanks!
>
> Eli Perelman
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org <mailto:es-discuss at mozilla.org>
> https://mail.mozilla.org/listinfo/es-discuss
>
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20160810/10bb2c10/attachment.html>
More information about the es-discuss
mailing list