Open froodley opened 6 years ago
The main VS Code plugin (?) for autogenerating getters and setters https://marketplace.visualstudio.com/items?itemName=DSKWRK.vscode-generate-getter-setter&_sm_au_=iVV7W3sWs2200Q56
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:
public get $var1(): string {
return this.var1;
}
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:
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.