-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Private props #47
Comments
Yes, definitely. I will support this at least as a pass-through transformation, and maybe also with a lowering pass (using |
I'd too love this feature |
Small update: the private name syntax can now be parsed in the latest release (version 0.4.9). I haven't implemented the transform for older browsers yet, however. |
This should be working as of esbuild version 0.5.7. I have added support for all kinds of private names (fields, methods, and getters/setters both non-static and static, including interactions with optional chaining). Please try it out and report bugs if you find any. |
Given that the readme goes out of it's way to point out how slow const privateField = Symbol("MyClass/privateField");
class MyClass {
constructor() {
this.publicField = 0;
this[privateField] = 1;
}
} Some quick benchmarking show that this performs closer to regular fields than the |
Yes, I have considered that too, but I avoided it for the reason you mentioned. Turning private fields into something that's not private seems like an invalid transformation to me. I could see it being an opt-in transform perhaps. Part of my hesitation is I've never seen this feature actually used in real-world code. If this feature makes it into more real-world code and 99% of the uses out there don't actually have to do with privacy, then I could see changing the default transformation and have privacy be opt-in instead. But I think it remains to be seen how this feature will actually be used once it gets more wide-spread adoption. Edit: I see that Babel has a loose option that does this, so it's not without precedent. It would be interesting to hear from others that are using this feature in their code what they are using it for and why they are using it. |
Private fields are Stage3 proposal, supported by major browsers https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Class_fields. Any plans to support it?
The text was updated successfully, but these errors were encountered: