FWIW I think If an enum should hold a unique value either "symbol" or a new "enum" type, otherwise I think "number" would be easier way to go.
Regards On Wed, Dec 16, 2015 at 12:20 AM, kdex <[email protected]> wrote: > Honestly, > > ```js > const ADD_ALL_THE_STUFF = "ADD_ALL_THE_STUFF"; > ``` > > doesn't seem like a intended approach anyway, even if there was a shorter > syntax. `Symbol()` seems to be the better choice if the objective is to > manage references whose values indicates special semantics; I have yet to > see a use case where a string turns out to be beneficial. Semantically, > what should > > ```js > typeof (enum { > APPLE, > ORANGE, > GRAPE > }).APPLE; > ``` > > evaluate to? A `"symbol"` called with its identifier, an identifier-valued > `"string"`, an integer-valued `"number"`? > > > On 16.12.2015 00:00, Jordan Harband wrote: > > Correct, when `const foo;` throws, my concern doesn't exist. The concern I > was talking about is if this initial suggestion went through, and `const > foo;` would become `const foo = 'foo';`, that a new refactoring hazard > would be created - which is the entire reason `const foo;` throws as-is. > > Agreed that an `enum` construct would be very useful. > > On Tue, Dec 15, 2015 at 11:56 AM, Andrea Giammarchi < > <[email protected]>[email protected]> wrote: > >> Jordan AFAIK you can't have undefined const declaration so your concern >> is unfounded. >> >> However, I'm pretty sure what Brendan says **is** indeed what developers >> want so I'd +1 that without problems. >> >> Regards >> >> On Tue, Dec 15, 2015 at 4:44 PM, Jordan Harband < <[email protected]> >> [email protected]> wrote: >> >>> That seems hazardous - if someone is converting a "var" codebase to >>> "const" and "let", and they convert `var foo;` to `const foo;` expecting it >>> to be undefined, the current TDZ error will be much more helpful to them >>> than a silent change of meaning in their code to `const foo = 'foo';`. >>> >>> On Tue, Dec 15, 2015 at 8:35 AM, Kip Obenauf < <[email protected]> >>> [email protected]> wrote: >>> >>>> A common pattern I see is this: >>>> const ADD_ALL_THE_STUFF = 'ADD_ALL_THE_STUFF' >>>> >>>> Would it be helpful to allow a shorter version of this to be: >>>> const ADD_ALL_THE_STUFF >>>> >>>> Rather than have that just be forever undefined, it could automatically >>>> refer to a string of the same name, i.e. 'ADD_ALL_THE_STUFF'. >>>> >>>> _______________________________________________ >>>> es-discuss mailing list >>>> [email protected] >>>> https://mail.mozilla.org/listinfo/es-discuss >>>> >>>> >>> >>> _______________________________________________ >>> es-discuss mailing list >>> [email protected] >>> https://mail.mozilla.org/listinfo/es-discuss >>> >>> >> > > > _______________________________________________ > es-discuss mailing > [email protected]https://mail.mozilla.org/listinfo/es-discuss > > >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

