Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork2.8k
fix(eslint-plugin): [no-unnecessary-condition] improve optional chain handling#2111
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
fix(eslint-plugin): [no-unnecessary-condition] improve optional chain handling#2111
Uh oh!
There was an error while loading.Please reload this page.
Conversation
Thanks for the PR,@yeonjuan! typescript-eslint is a 100% community driven project, and we are incredibly grateful that you are contributing to that community. The core maintainers work on this in their personal time, so please understand that it may not be possible for them to review your work immediately. Thanks again! 🙏Please, if you or your company is finding typescript-eslint valuable, help us sustain the project by sponsoring it transparently onhttps://opencollective.com/typescript-eslint. As a thank you, your profile/company logo will be added to our main README which receives thousands of unique visitorsper day. |
codecovbot commentedMay 26, 2020 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Codecov Report
@@ Coverage Diff @@## master #2111 +/- ##======================================= Coverage 93.42% 93.42% ======================================= Files 171 171 Lines 7755 7757 +2 Branches 2215 2216 +1 =======================================+ Hits 7245 7247 +2 Misses 244 244 Partials 266 266
|
Unless I'm mistaken, I believe this is addressing#1977. If I'm right, please add it to the OP 😄 |
yeonjuan commentedMay 27, 2020 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
@bradzacher so this pr can't fix#1977 letx:{a:{b:string}}|null;x?.a?.b;^^// a's nullable type is originated from x's type, so this case belong #1977letx:{a?:string};x?.a;// no error^^// IMO, we should check type of "x" not "a" |
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.
LGTM - thanks for this!
Uh oh!
There was an error while loading.Please reload this page.
Hi, 😀
IMO, it's a false negative in
no-unnecessary-condition
Repro
Expected Result
Actual Result
Additional Info
It seems "no-unnecessary-condition" checks whether the whole optional member expression type is nullable or not. so it just passed when the last member in the optional member expression is nullable.
I changed the target node to check. Am I miss something? 🤔