-
-
Notifications
You must be signed in to change notification settings - Fork 4.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 variable - leading underscore #861
Comments
The main VS Code plugin (?) for autogenerating getters and setters has this behavior: If a private variable is named with a leading underscore, the getter and setter will be generated in the same way as described in the TS documentation, above. If it does not have a leading underscore, the getter and setter will be generated with a leading $, and the internal variable will remain unchanged. This does not seem preferable to the internal leading underscore:
|
Has there been any update here? |
Still looking for feedback on this |
I agree |
An important concern for us here is that the recommended behavior be lintable. tslint-consistent-codestyle.naming-convention e.g. allows us to define a pattern for all private fields, but not a rule that would only apply to internal fields mapped by public properties. So e.g. 'Consider using _ only for internal fields mapped by properties' would not be lintable. |
Hi,
The style guide states:
https://angular.io/guide/styleguide#style-03-04
However, this is in direct conflict with how getters and setters work in TypeScript. Because the getter/setter is not a normal function, but instead has the public name of the property, I cannot have a private property
propertyX
because propertyX will be the name of the getter and setter.The
public get propertyX(): SomeType { return this._propertyX; }
pattern is the one in the TypeScript docs:
https://www.typescriptlang.org/docs/handbook/classes.html
... and the one used by the tooling by default.
_ is prepended, for instance, if you convert a class with public fields by adding getters and setters in WebStorm. Also, the tslint-consistent-codestyle package's naming-convention default is to enforce _.
https://www.npmjs.com/package/tslint-consistent-codestyle
If another naming convention is preferred over the leading underscore, the style guide should let us know what it is.
The text was updated successfully, but these errors were encountered: