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
[ts] Support override modifiers for parameter properties #13428
Conversation
sosukesuzuki
commented
Jun 6, 2021
•
edited by gitpod-io
bot
edited by gitpod-io
bot
Q | A |
---|---|
Fixed Issues? | Fixes #13427 |
Patch: Bug Fix? | Y |
Tests Added + Pass? | Yes |
License | MIT |
Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/46782/ |
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 8f7c78c:
|
Do we enforce modifier order in constructor args too? class Foo extends Bar {
constructor(override private readonly foo: string) {
}
} And can you test this also on a regular class method, because the test should fail in that case as for |
if (allowModifiers !== undefined) { | ||
accessibility = this.parseAccessModifier(); | ||
override = !!this.tsParseModifier(["override"]); | ||
readonly = !!this.tsParseModifier(["readonly"]); |
This comment was marked as duplicate.
This comment was marked as duplicate.
Sorry, something went wrong.
if (allowModifiers !== undefined) { | ||
accessibility = this.parseAccessModifier(); | ||
override = !!this.tsParseModifier(["override"]); | ||
readonly = !!this.tsParseModifier(["readonly"]); | ||
if (allowModifiers === false && (accessibility || readonly)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we also check override
here?
const modified = {}; | ||
this.tsParseModifiers(modified, [ | ||
"public", | ||
"private", | ||
"protected", | ||
"override", | ||
"readonly", | ||
]); | ||
accessibility = modified.accessibility; | ||
override = modified.override; | ||
readonly = modified.readonly; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I used tsParseModifiers
on an empty object to reuse the logic to enforce the order. What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!