-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Closed
Closed
Copy link
Labels
accepting prsGo ahead, send a pull request that resolves this issueGo ahead, send a pull request that resolves this issuebugSomething isn't workingSomething isn't workinggood first issueGood for newcomersGood for newcomerslocked due to agePlease open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.Please open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.package: eslint-pluginIssues related to @typescript-eslint/eslint-pluginIssues related to @typescript-eslint/eslint-plugin
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
declare const falseyBigInt: 0n;
if (falseyBigInt) {
}ESLint Config
module.exports = {
"rules": {
"@typescript-eslint/no-unnecessary-condition": "warn"
}
}tsconfig
Expected Result
Unnecessary conditional, value is always falsy.
Actual Result
Unnecessary conditional, value is always truthy.
Additional Info
This is a bug with this line.
| (type.isLiteral() && !!type.value); |
The .value field returns a PseudoBigInt object that looks like { negative?: boolean, base10Value: string }, rather than a bigint itself (for legacy TS support reasons). So checking for truthiness is incorrect; we need to convert to a real bigint.
Metadata
Metadata
Assignees
Labels
accepting prsGo ahead, send a pull request that resolves this issueGo ahead, send a pull request that resolves this issuebugSomething isn't workingSomething isn't workinggood first issueGood for newcomersGood for newcomerslocked due to agePlease open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.Please open a new issue if you'd like to say more. See https://typescript-eslint.io/contributing.package: eslint-pluginIssues related to @typescript-eslint/eslint-pluginIssues related to @typescript-eslint/eslint-plugin
{ "compilerOptions": { "strictNullChecks": true } }