<div dir="ltr">Have not tried TypeScript. What are the use cases for JavaScript where TypeScript is not used? Does ```nameof()``` check if an object has a specific property name defined (```"MutationObserver" in window```; ```window.MutationObserver```; ```"document" in globalThis```)?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 14, 2019 at 1:05 PM Stas Berkov <<a href="mailto:stas.berkov@gmail.com">stas.berkov@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" style="background-color:rgb(255,255,255)" color="#073763">Can we revisit this issue?</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)"><br></font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)">In C# there is `nameof`, in Swift you can do the same by calling</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)">```</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)">let keyPath = \Person.mother.firstName</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)">NSPredicate(format: "%K == %@", keyPath, "Andrew")</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)">```</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)">Let's introduce `nameof` in ES, please. <br></font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)"><br></font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" style="background-color:rgb(255,255,255)" color="#073763">Devs from TypeScript don't want to introduce this feature in TypeScript unless it is available in ES ( <a href="https://github.com/microsoft/TypeScript/issues/1579" rel="noopener" target="_blank">https://github.com/microsoft/TypeScript/issues/1579</a> ) </font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)">This feature is eagarly being asked by TypeScript community.</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)"><br></font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font color="#073763" face="arial, sans-serif">I understand there are couple issues related to `nameof` feature in ES. They are: minification and what to do if user already has `nameof` function.</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font color="#073763"><br></font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font color="#073763">Minification.</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font color="#073763">1. If your code to be minimized be prepared that variable names will also change.</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font color="#073763">2. (just a possibility) Minimizer can have option to replace `nameof(someVar)` with result of `nameof` function.</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font color="#073763"><font face="arial, sans-serif" style="background-color:rgb(255,255,255)"> </font><br></font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)">What if user already has `nameof` function.</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)">1. To maintain status quo we can user `nameof` function having priority over newly introduced language feature.</font></p><p class="MsoNormal" style="margin:0in 0in 0.0001pt"><font face="arial, sans-serif" color="#073763" style="background-color:rgb(255,255,255)">2. OR we can use `typeof` syntax, e.g. `nameof msg.userName` (// returns "userName" string)</font></p></div>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div>