Re: Using enums to avoid default true in "settings dictionaries" (#466, #467, #471)

On 2/20/16 2:36 AM, Peter Thatcher wrote:
> On Fri, Feb 19, 2016 at 10:50 PM, Martin Thomson 
> <martin.thomson@gmail.com <mailto:martin.thomson@gmail.com>> wrote:
>
>     On 19 February 2016 at 21:50, Peter Thatcher <pthatcher@google.com
>     <mailto:pthatcher@google.com>> wrote:
>     > But how does converting to an enum help at all?  Wouldn't
>     undefined then
>     > just get turned into an enum value, which is truthy?
>
>     An enum ensures that all valid values that are equally truthy, so
>     truthy/falsy becomes irrelevant.  Yes, the default is truthy, but so
>     is every valid value.
>
> ​
> So pc.createDataChannel("label", {ordered: undefined}) is still going 
> to be ordered, right?

Right.

> So how are we better off with an enum in this case?

Because there's precedent for expecting undefined to be interpreted as 
false [1], and no such precedent for strings?

>     > And if a truthy value of a default is discouraged, then are the only
>     > encouraged defaults the falsy ones (false/null/""/0/NaN)?
>
>     This is only relevant for dictionary parameters with Boolean types.
>

[1] https://developer.mozilla.org/en-US/docs/Glossary/Falsy

.: Jan-Ivar :.

Received on Sunday, 21 February 2016 16:01:46 UTC