Comments (8)
See the FAQ for private fields.
In short: of course we started out trying to make it work with the same syntax used in other languages. That turns out not to work.
from proposal-class-fields.
At the next TC39 meeting, I'll raise this concern again. However, I'm not sure how much more ground there is to cover here--this has already been thoroughly discussed in the private fields issues.
from proposal-class-fields.
@dinoboff See the FAQ for private fields.
from proposal-class-fields.
So private x
would lead to bad assumption. Can't an other keyword be used instead?
from proposal-class-fields.
We discussed the possibility of an additional keyword for declarations at TC39. Ultimately, we were pretty firm that the declaration should include the #
, so that declaration would mirror use and to encourage the mental model that the #
is part of the field name. At that point, we felt an additional keyword would just be additional noise for not much benefit.
from proposal-class-fields.
In my opinion the sigil # looks like a syntactic noise and I'd to see something more compatible with TypeScript and other languages.
class Foo {
private x = 1;
public y () {
return this->x;
}
}
let foo = new Foo();
foo.y(); // 1
Why not to use the arrow -> instead of the dot .?
from proposal-class-fields.
@littledan I understand why access to private fields needs a specific syntax, but that's not true for the declaration. Was the possibility of having a keyword like private x
used to declare a private field and using #x
only to access it discussed?
from proposal-class-fields.
@monolithed for your first question, please read the FAQ (this is also answered about 3 comments up)
from proposal-class-fields.
Related Issues (20)
- Class fields are a time waster. HOT 7
- Motivation for PrivateFieldAdd type error? HOT 5
- Interaction with Integrity Levels? HOT 4
- private field and protected field HOT 1
- Clarify what the context (`this`) for fields declared as anonymous functions will be in the spec. HOT 2
- Inferred function names for number/bigint fields aren't handled right HOT 2
- [Suggestion] Consider to use time proof solution with private and protected keywords HOT 39
- Private fields breaks POI HOT 35
- Support for privates in object literals? HOT 3
- Class composition HOT 3
- [[Define]] semantics causes libraries to lose performance. HOT 2
- class fields with [[Define]] semantics are much slower than with [[Set]] semantics. HOT 3
- [[Define]] semantics necessitate workarounds HOT 7
- Properties without initializers can create some headache in "real-world" scenarios. HOT 14
- Why are #private fields not source-positional? HOT 22
- Statement of our opinions on class fields and its related package of proposals HOT 2
- Proxy nested inside of the Prototype Chain HOT 2
- Please Don't Do That. HOT 8
- Why are class fields so slow? HOT 2
- Constructor arguments with object destructuring HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from proposal-class-fields.