DEV Community

Discussion on: Optional booleans?

Collapse
 
daniel13rady profile image
Daniel Brady

Hmm, I interpreted Ben's comment about 'defaults' as "always have one, and when adding one retroactively be sure to backfill existing data," not "have a 'default' value that is distinct from all others in the type". This seems to align with and extend your own comment:

I personally value the developer experience of having sensible defaults whenever possible

Did I read you right, Ben? (@moopet )

Thread Thread
 
lexlohr profile image
Alex Lohr

But if you say booleans cannot be optional, then the consequence is that there cannot be default values for boolean properties.

Thread Thread
 
daniel13rady profile image
Daniel Brady

I think that makes sense, though, right? If it's required, a default isn't necessary or applicable. If it's optional, you need a sane default.

But I didn't say anything about not having optional booleans: quite the contrary, I was talking about the case where you do have optional booleans, and paraphrasing Ben's comment about it.

Thread Thread
 
moopet profile image
Ben Sinclair

@dabrady yeah, that's what I meant. If there's a useful semantic difference between three states then it should be an enum or something, but if the third state is just there beacuse it's unfilled, why not fill it?

Thread Thread
 
lexlohr profile image
Alex Lohr

Because it might only be for one of the use cases of your API. Should the developer using it need to care about all the use cases that don't matter to him? I should think that is a waste of his time.