Closed
Description
Before You File a Bug Report Please Confirm You Have Done The Following...
- I have tried restarting my IDE and the issue persists.
- I have updated to the latest version of the packages.
- I have searched for related issues and found none that matched my issue.
- I have read the FAQ and my problem is not listed.
Playground Link
Repro Code
type MyBrandedString = string & { __brand: unknown };
const brandedString = "" as MyBrandedString;
if (brandedString) {
// Do something.
}
ESLint Config
module.exports = {
parser: "@typescript-eslint/parser",
rules: {
"@typescript-eslint/no-unnecessary-condition": "error"
},
};
tsconfig
Expected Result
I did not expect to get a linter error, since brandedString
in the example can be falsy.
Actual Result
The rule reports:
Unnecessary conditional, value is always truthy.
This looks like a false positive to me, because string & { }
does not disallow empty strings or the like.
Additional Info
#2506 could be somewhat related, since they also had issues with a similar intersection.