Skip to content
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

fix(eslint-plugin): [strict-boolean-expression] false positive for truthy boolean #4275

Conversation

lonyele
Copy link
Contributor

@lonyele lonyele commented Dec 8, 2021

PR Checklist

Overview

I checked the return value type from ts.TypeChecker and found that a value from a simple situation like boolean, true, false has distinguishable intrinsicName 'boolean'/'true'/'false', but more complicated union type situation needs the process of tsutils.unionTypeParts(type) which makes boolean type object divided into 2 seperate object with 'true' and 'false' which made me to check booleans length for checking truthy boolean

const type = util.getConstrainedTypeAtLocation(typeChecker, tsNode);
const types = inspectVariantTypes(tsutils.unionTypeParts(type));

@typescript-eslint
Copy link
Contributor

Thanks for the PR, @lonyele!

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 on https://opencollective.com/typescript-eslint. As a thank you, your profile/company logo will be added to our main README which receives thousands of unique visitors per day.

@netlify
Copy link

netlify bot commented Dec 8, 2021

❌ Deploy Preview for typescript-eslint failed.

🔨 Explore the source changes: 384f528

🔍 Inspect the deploy log: https://app.netlify.com/sites/typescript-eslint/deploys/61b04cfb50bdce000834c0cd

@codecov
Copy link

codecov bot commented Dec 8, 2021

Codecov Report

Merging #4275 (384f528) into main (9c22f65) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main    #4275   +/-   ##
=======================================
  Coverage   93.37%   93.37%           
=======================================
  Files         152      152           
  Lines        8085     8090    +5     
  Branches     2596     2599    +3     
=======================================
+ Hits         7549     7554    +5     
  Misses        181      181           
  Partials      355      355           
Flag Coverage Δ
unittest 93.37% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
...int-plugin/src/rules/strict-boolean-expressions.ts 98.81% <100.00%> (+0.03%) ⬆️

@bradzacher bradzacher added the bug Something isn't working label Dec 8, 2021
Copy link
Member

@bradzacher bradzacher left a 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!

@bradzacher bradzacher merged commit 72c2e41 into typescript-eslint:main Dec 15, 2021
@lonyele lonyele deleted the fix/false-positive-for-truthy-boolean branch December 17, 2021 10:23
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 17, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[strict-boolean-expressions] False positive for "true | undefined"
2 participants