-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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